1.<null/>用于处理null 值.spring会把属性的空参数当作空字符串处理.
2.bean的作用域:有singleton,prototype,request,session,global session
3.有关spring中的RMI(Remote Method Invocation),spring目前支持4种远程技术:
1).RMI.通过使用RmiProxyFactoryBean和RmiServiceExporter,spring同时支持传统的RMI和通过RMIymet
调用器实现的透明远程调用.
rmi-server.xml:
<bean id="someService"
class="onlyfun.caterpillar.SomeServiceImpl"/>
<bean id="serviceExporter"
class="org.springframework.remoting.rmi.RmiServiceExporter">
<property name="service" ref="someService"/>
<property name="serviceName" value="SomeService"/>
<property name="serviceInterface"
value="onlyfun.caterpillar.ISomeService"/>
</bean>
RMIServer.java:
ApplicationContext context =
new ClassPathXmlApplicationContext("rmi-server.xml");
System.out.println("启动RMI Server..");
System.out.println("请输入exit关闭Server: ");
BufferedReader reader =
new BufferedReader(
new InputStreamReader(System.in));
while(true) {
if(reader.readLine().equals("exit")) {
break;
}
}
RmiServiceExporter rmiServiceExporter =
(RmiServiceExporter) context.getBean("serviceExporter");
rmiServiceExporter.destroy();
}
rmi-client.xml:
<bean id="someServiceProxy"
class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceUrl"
value="rmi://localhost/SomeService"/>
<property name="serviceInterface"
value="onlyfun.caterpillar.ISomeService"/>
</bean>
RMIClient.java:
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext(
"rmi-client.xml");
ISomeService service =
(ISomeService) context.getBean("someServiceProxy");
String result1 = service.doSomeService("Some request");
System.out.println(result1);
int result2 = service.doOtherService(1);
System.out.println(result2);
}
2)使用Hessian,通过HessianProxyFactoryBean和HessianServiceExporter,可以使用Caucho提供的基于
Http的轻量级二进制协议来透明地暴露服务.
Hessian是使用一个特定的servert通过Http进行通讯,与RMI不同,只有将该web放在容器中运行,client就可以访问到.
web.xml:
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/service-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.service</url-pattern>
</servlet-mapping>
service-config.xml:
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/some.service">serviceExporter</prop>
</props>
</property>
</bean>
<bean id="someService"
class="onlyfun.caterpillar.SomeServiceImpl"/>
<bean id="serviceExporter"
class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="service" ref="someService"/>
<property name="serviceInterface"
value="onlyfun.caterpillar.ISomeService"/>
</bean>
client调用
hessian-client.xml
3.使用HTTP调用器,使用标准java序列化机制来通过HTTP暴露业务,如果你的参数或返回值是复杂类型,并且不能通过Hessian和Burlap的序列化机制进行序列化,HTTP调用器很有优势.
实际上,spring可以使用J2SE提供的标准功能或Commons的HttpClient来实现HTTP调用.
其配置方法同Hessian.
只要将service.config.xml中org.springframework.remoting.caucho.HessianServiceExporter
改为:org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter
客户端的配置文件中:org.springframework.remoting.caucho.HessianServiceExporter
改为org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean
4.再就是web service见webSerice部分.
分享到:
相关推荐
《Spring框架深度解析:从配置到注解再到工作原理》 Spring框架,作为Java开发中的核心组件,以其强大的依赖注入(DI)和面向切面编程(AOP)能力,极大地简化了企业级应用的开发。在本文中,我们将深入探讨Spring...
很抱歉,但根据您给出的信息,"review_second-源码.rar" 和 "review_second-源码.zip" 都是文件名,而没有提供具体的IT知识点或描述。通常,"源码"指的是编程语言编写的原始代码,可能是某个软件、应用或网站的实现...
"sm框架"通常指的是SpringMVC框架,这是一个广泛使用的Java Web开发框架,属于Spring生态的一部分。SpringMVC提供了一个模型-视图-控制器(MVC)架构,帮助开发者构建高效、灵活的Web应用程序。在“sm框架整合”的...
这个项目名为 "spring-mvc-review",可能是对 Spring MVC 框架的一个复习或者示例应用。 Spring MVC 的核心特性包括: 1. **模型-视图-控制器架构**:它将应用程序逻辑分离开来,使得开发人员可以独立地处理数据、...
在"spring-aop-review-tcf"这个示例中,你可以看到如何配置Spring的AOP支持,以及如何定义切面(Aspect)和通知(Advice)。切面通常包含一个或多个通知,通知定义了增强的逻辑。通知类型包括前置通知(Before)、...
NLP NLPNLPNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
标题中的“review”可能指的是对某个软件、框架或者编程工具的评价或回顾,这通常涉及到对其实用性、性能、易用性等方面的分析。由于没有具体的标题内容,我将假设这是一个关于开源项目或软件工具的代码审查过程。 ...
一旦模型训练完成,我们将其部署到生产环境,可能需要将Java代码与Web服务结合,如Spring Boot框架,实现RESTful API接口,以便其他应用可以调用我们的评论分析服务。此外,为了实时处理新评论,我们可以使用消息...
结合Struts2的插件机制,可以方便地集成第三方库,如Spring、Hibernate等,以实现完整的MVC+ORM解决方案。 项目中的文件可能包括Action类、JSP页面、配置文件(如struts.xml)、测试用例等。Action类通常会处理业务...
(选型时由于采用springmvc+jetty,参考spring-boot感觉太麻烦,如需要可以修改为spring框架 采用Hibernate是由于对于性能要求不高,所以不采用原生Jdbc处理了 ) 前台采用angularjs+bootstrap,依赖angularjs相关...
在项目中,数据库设计可能包括以下几个表:用户表(User)、房源表(Accommodation)、预订表(Reservation)、评价表(Review)等。用户表存储用户的基本信息,如用户名、密码、联系方式等;房源表包含房源的详细...
- 数据库设计包括用户表(User)、课程表(Course)、用户行为表(UserBehavior)等,可能还有其他关联表如类别表(Category)、评价表(Review)等。 - 可能会使用外键约束来保持数据的一致性和完整性。 3. **...
Psychological management of patients with chronic prostatitis/chronic pelvic pain syndrome (CP/CPPS): a systematic review.[J]. Scandinavian journal of pain, 2022. 9. 王珊, 萨师煊. 数据库系统概论[M]. ...
【标题】"2014 Year in Review" 概述的是对2014年度在IT领域,特别是软件开发方面的重要发展和趋势的回顾。这个标题暗示了文章可能涵盖了当年的技术创新、流行的开源项目、重要的编程语言更新或者工具的发布等。2014...
* 教师播放录音,全班学生跟着录音学说韵律诗:Hello,Spring! * 板书课题:Review 2 * 完成课本第 66 页的 Tick the words you can say 部分 * 游戏——一气呵成 Step 2 Review Unit 5 * 复习 12 个月份的单词 * ...
springboot-review springboot复习一哈 入职公司快两个月了,记得好像在毕设答辩前一个月都是在赶论文,没怎么敲过代码,最多对毕设修修改改,刚开始入职到公司都是在导师的架构里写业务代码,所以感觉有必要对这些...
Spring相关 spring 优点,特性 spring IOC AOP,aop如何实现 JDK动态代理和cgLib动态代理 sprin创建bean过程 SpringMVC常用注解 springMVC处理请求流程/工作流程 ...
ation management, project application management, project inspection management, project completion management, project review management, expert review management, and review plan management....