- 浏览: 342147 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (212)
- spring (21)
- design pattern(java) (12)
- linux-shell (28)
- java-thread (20)
- java-collection (6)
- java-reflect (9)
- mysql (11)
- java-io (7)
- java-util&lang&io (3)
- algorithm (3)
- interview (2)
- tools-eclipse (2)
- tools-maven (1)
- web-script (1)
- java组建 (13)
- 博客收藏 (1)
- 架构设计与实践 (10)
- active-mq (6)
- java-jvm&性能&原理 (27)
- tomcat (2)
- flume (1)
- serialization (2)
- git (1)
- cache&redis (8)
- guava (1)
- zookeeper (3)
- socket&tcp&udp&http (6)
- test (1)
最新评论
-
bbls:
有用有用有用
java-jvm-jstack-(监视器和锁的概念) -
王新春:
小侠有点帅哦 写道此流怎么关闭新春这个实现 可以不关闭的,哈哈 ...
源码剖析之java.io.ByteArrayOutputStream -
小侠有点帅哦:
此流怎么关闭新春
源码剖析之java.io.ByteArrayOutputStream -
cumt168:
写的很好为什么初始化参数,年轻代-Xmn10M def new ...
jvm之内存申请过程分析 -
ronin47:
应该是跟共享域名思路差不多,根据cookie的key作判断
跨域:一种通过服务端解决跨域的实现
spring 提供了基本的基于http协议的rpc,同时提供了对rmi 、httpclient3、httpclient4、hession/burlap等相关现有的rpc支持。
rpc :远程方法调用。
效果:在客户端可以通过编程语言调用 服务端的对象。
实现基本思想:在客户端调用方法的时候,把调用的方法名,参数,参数类型通过相关协议传递到服务端,服务端解析到客户端调用的方法、参数等信息,在server端的对象上同样调用此方法,并把调用的结果通过协议返回。
依赖底层技术:java序列化(对象流),http或者tcp 协议。
基于http协议rpc的实现设想:
1、server端启动http协议接口。接受methodname,parameter,parameterTypes
2、clientApp调用远程的方法m1,参数:p1,通过http协议调用接口,传递m1,p1
3、servr端接收到请求,解析到m1,p1,在server端调用m1方法,然后回调客户端的接口,提交server端执行后的数据结果。
4、client收到server端的回调,解析server端执行的结果的数据。(可以同步,也可以异步)
下面是spring rpc 实现的case:
client project
applicationContext.xml的配置
servlet-context.xml 的配置
-------------------------------------------------------------------------------------
server project
servlet-context.xml
applicationContext.xml
rpc :远程方法调用。
效果:在客户端可以通过编程语言调用 服务端的对象。
实现基本思想:在客户端调用方法的时候,把调用的方法名,参数,参数类型通过相关协议传递到服务端,服务端解析到客户端调用的方法、参数等信息,在server端的对象上同样调用此方法,并把调用的结果通过协议返回。
依赖底层技术:java序列化(对象流),http或者tcp 协议。
基于http协议rpc的实现设想:
1、server端启动http协议接口。接受methodname,parameter,parameterTypes
2、clientApp调用远程的方法m1,参数:p1,通过http协议调用接口,传递m1,p1
3、servr端接收到请求,解析到m1,p1,在server端调用m1方法,然后回调客户端的接口,提交server端执行后的数据结果。
4、client收到server端的回调,解析server端执行的结果的数据。(可以同步,也可以异步)
下面是spring rpc 实现的case:
client project
@Controller @RequestMapping("/login") public class LoginController { private final static Logger logger = LoggerFactory.getLogger(LoginController.class); @Autowired private ILoginService loginService; @RequestMapping("/guest") public String login(HttpServletRequest request,HttpServletResponse response){ logger.info("begin login "); User user = loginService.login(request.getParameter("username"), request.getParameter("password")); request.setAttribute("username", user.getUsername()); request.setAttribute("password", user.getPassword()); logger.info("end login "); return "login"; } public ILoginService getLoginService() { return loginService; } public void setLoginService(ILoginService loginService) { this.loginService = loginService; } }
applicationContext.xml的配置
<bean name="loginService" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean"> <property name="serviceUrl" value="http://127.0.0.1:8080/loginServiceInvoker"/> <property name="serviceInterface" value="org.job.service.login.ILoginService"/> </bean>
servlet-context.xml 的配置
<context:component-scan base-package="org.job.login" > <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" /> </context:component-scan> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp"/> </bean>
-------------------------------------------------------------------------------------
server project
servlet-context.xml
<bean name="/loginServiceInvoker" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"> <property name="service" ref="loginServiceImpl"/> <property name="serviceInterface" value="org.job.service.login.ILoginService"/> </bean> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp"/> </bean> <context:component-scan base-package="org.login.web" > <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" /> </context:component-scan>
applicationContext.xml
<bean name="loginServiceImpl" class="org.job.service.login.LoginServiceImpl"/>
- spring-rpc.zip (835.7 KB)
- 下载次数: 5
发表评论
-
mvc-HandlerMapping
2017-06-03 23:13 841HandlerMapping:定义了web请求映射和处 ... -
spring-transaction-basic
2016-12-26 19:18 410Spring的事务本身是基于AOP的 AOP代理自 ... -
spring-transaction-propagation
2016-11-25 21:00 852Spring 事务:是spring 通过 aop实现的一套 ... -
spring bean & id
2016-11-25 17:57 459首先澄清一个概念: 同名bean:多个bean ... -
spring 父子容器
2016-11-25 17:11 3651特殊说明: ContextLoaderListe ... -
spring-mvc-基础
2016-09-26 15:03 390核心入口功能定位: HttpServletBean:完成的是& ... -
spring-mvc 学习资料
2016-09-20 15:42 358http://docs.spring.io/spring-fr ... -
spring-aop-DefaultAdvisorAutoProxyCreator
2016-08-16 19:50 469ProxyFactory:手工编程实现AOP,编程式 添加ad ... -
spring-aop基本概念
2016-07-26 16:37 828AOP词汇: Joinpoint:在程序执行过程中某个特定的 ... -
spring-扩展点-BeanFactoryPostProcessor
2016-06-15 18:15 6010BeanFactoryPostProcessor:允许自定 ... -
spring-扩展点-BeanPostProcessor
2016-06-14 15:02 1559理解spring中一个bean的初始化过程非常重要,很多基础功 ... -
spring-扩展点-namespacehandler(Spring自定义标签)
2016-05-27 11:31 2213在很多情况下,我们需要为系统提供可配置化支持,简单的做法可以直 ... -
spring 资源文件
2015-04-03 00:07 148【转载】 非原创 SpringMVC访问静态资源的三种方式 ... -
spring-master-slave-commondao
2014-07-19 14:32 2252互联网的web项目,都有个特点:请求的并发量高,其中请求最耗时 ... -
spring-jdbc-RoutingDataSource
2014-07-11 17:33 5465spring jdbc 提供了抽象类AbstractRouti ... -
spring-aop-ProxyFactoryBean 源码分析
2014-06-13 19:10 2033在阅读本篇之前,请先阅读http://wangxinchun. ... -
spring-aop-ProxyFactory 源码分析
2014-06-13 02:22 4778spring 提供的编程式aop实现,即通过 ProxyFac ... -
spring-aop-aspectj(Schema)-case
2014-05-31 15:50 1090基于Schema 配置切面: 1、切点定义的语言依然是Aspe ... -
spring-aop-aspectj-case
2014-05-31 14:51 1371AOP概念:面向切面编程。 spring 集成AOP: 1、 ... -
spring-mvc-case
2014-05-10 23:50 1195spring mvc 是当前java比较流行的一种mvc架构, ...
相关推荐
开发工具 spring-web-4.3.6.RELEASE开发工具 spring-web-4.3.6.RELEASE开发工具 spring-web-4.3.6.RELEASE开发工具 spring-web-4.3.6.RELEASE开发工具 spring-web-4.3.6.RELEASE开发工具 spring-web-4.3.6.RELEASE...
spring-context-1.2.8.jar, spring-context-1.2.9.jar, spring-context-2.0-m2.jar, spring-context-2.0.1.jar, spring-context-2.0.2.jar, spring-context-2.0.4.jar, spring-context-2.0.6.jar, spring-context-...
spring-aop-1.1.1.jar spring-aop-1.2.6.jar spring-aop-1.2.9.jar spring-aop-2.0.2.jar spring-aop-2.0.6.jar spring-aop-2.0.7.jar spring-aop-2.0.8.jar spring-aop-2.0.jar spring-aop-2.5.1.jar spring-aop-...
开发工具 框架JAR spring-framework-4.3.6.RELEASE-dist开发工具 框架JAR spring-framework-4.3.6.RELEASE-dist开发工具 框架JAR spring-framework-4.3.6.RELEASE-dist开发工具 框架JAR spring-framework-4.3.6....
spring-core-4.1.6.RELEASE.jar spring-core-4.3.10.RELEASE.jar spring-core-4.3.12.RELEASE.jar spring-core-4.3.13.RELEASE.jar spring-core-4.3.14.RELEASE.jar spring-core-4.3.16.RELEASE.jar spring-core-4.3...
spring-ai-core 0.8.1,解决大家使用2023.0.1.0 版本 Spring Cloud Alibaba 依赖,代码依赖下载报错问题, <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies <version>...
赠送jar包:springfox-spring-web-2.9.2.jar; 赠送原API文档:springfox-spring-web-2.9.2-javadoc.jar; 赠送源代码:springfox-spring-web-2.9.2-sources.jar; 赠送Maven依赖信息文件:springfox-spring-web-...
在这个问题中,我们遇到了两个关键的jar包:`spring-cglib-repack-3.2.0.jar`和`spring-objenesis-repack-2.1.jar`。这两个jar包对于理解Spring框架的工作原理以及它们在实际应用中的作用至关重要。 首先,`spring-...
开发工具 spring-core-4.3.6.RELEASE开发工具 spring-core-4.3.6.RELEASE开发工具 spring-core-4.3.6.RELEASE开发工具 spring-core-4.3.6.RELEASE开发工具 spring-core-4.3.6.RELEASE开发工具 spring-core-4.3.6....
赠送jar包:spring-plugin-core-2.0.0.RELEASE.jar; 赠送原API文档:spring-plugin-core-2.0.0.RELEASE-javadoc.jar; 赠送源代码:spring-plugin-core-2.0.0.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring...
赠送jar包:spring-jdbc-5.3.15.jar; 赠送原API文档:spring-jdbc-5.3.15-javadoc.jar; 赠送源代码:spring-jdbc-5.3.15-sources.jar; 赠送Maven依赖信息文件:spring-jdbc-5.3.15.pom; 包含翻译后的API文档:...
赠送jar包:spring-security-crypto-5.5.2.jar; 赠送原API文档:spring-security-crypto-5.5.2-javadoc.jar; 赠送源代码:spring-security-crypto-5.5.2-sources.jar; 赠送Maven依赖信息文件:spring-security-...
赠送jar包:spring-security-core-5.3.9.RELEASE.jar; 赠送原API文档:spring-security-core-5.3.9.RELEASE-javadoc.jar; 赠送源代码:spring-security-core-5.3.9.RELEASE-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:spring-security-crypto-5.6.1.jar; 赠送原API文档:spring-security-crypto-5.6.1-javadoc.jar; 赠送源代码:spring-security-crypto-5.6.1-sources.jar; 赠送Maven依赖信息文件:spring-security-...
赠送jar包:spring-data-commons-2.0.6.RELEASE.jar; 赠送原API文档:spring-data-commons-2.0.6.RELEASE-javadoc.jar; 赠送源代码:spring-data-commons-2.0.6.RELEASE-sources.jar; 赠送Maven依赖信息文件:...
赠送jar包:spring-messaging-5.0.8.RELEASE.jar; 赠送原API文档:spring-messaging-5.0.8.RELEASE-javadoc.jar; 赠送源代码:spring-messaging-5.0.8.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-...
赠送jar包:spring-context-support-1.0.10.jar; 赠送原API文档:spring-context-support-1.0.10-javadoc.jar; 赠送源代码:spring-context-support-1.0.10-sources.jar; 赠送Maven依赖信息文件:spring-context-...
赠送jar包:spring-session-data-redis-2.0.4.RELEASE.jar; 赠送原API文档:spring-session-data-redis-2.0.4.RELEASE-javadoc.jar; 赠送源代码:spring-session-data-redis-2.0.4.RELEASE-sources.jar; 赠送...
赠送jar包:spring-security-oauth2-2.3.5.RELEASE.jar; 赠送原API文档:spring-security-oauth2-2.3.5.RELEASE-javadoc.jar; 赠送源代码:spring-security-oauth2-2.3.5.RELEASE-sources.jar; 赠送Maven依赖信息...