Spring web 相关配置

SPRING 开头定义
<?  xml   version =  "1.0"   encoding  =  "UTF-8" ?>
<  beans   xmlns =  "http://www.springframework.org/schema/beans"
            xmlns:xsi =  "http://www.w3.org/2001/XMLSchema-instance" xmlns:context  = "http://www.springframework.org/schema/context"
            xsi:schemaLocation  = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd" >
</  beans >

1、在BEAN中配置系统变量,或从属性文件中取值
配置:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" />
使用:
<property name="workDir" value="${user.dir}"/>

配置:
<bean id="propertyConfigurer"   class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="locations">       
  <list>             
       <value>classpath:jdbc.properties</value>       
  </list>
</property>
使用:
<property name="url" value="${jdbc.url}"/>  

2、在BEAN中配置messageSource实现国际化
    <bean id="serverMessages" class="org.springframework.context.support.ResourceBundleMessageSource">
          <property name="basenames">
               <list>
                    <!-- 用以覆盖com/hd123/jpos/server/posserver-messages定义的消息 -->
                    <value>posbo-messages</value>
                    <value>com/hd123/jpos/bo/posbo-messages</value>
               </list>
          </property>
     </bean>
可以指定编码方式,通过指定:<property name="defaultEncoding" value="gbk" />

3、配置web.xml
3.1 第一种在WEB SERVICE中加入SPRING的方式为
  <servlet>
          <servlet-name>context</servlet-name>
          <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
          <load-on-startup>1</load-on-startup>
     </servlet>
     <context-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/tracker.xml</param-value>
     </context-param>
3.2 第二种方式是采用listener的方式进行添加(待补充)

3.3 在WEB SERVICE采用SPRING的远程方法调用,示例:
1、在web.xml中加入以下代码:
     <servlet>
          <servlet-name>media</servlet-name>
          <servlet-class>com.hd123.bt.media.MediaDispatcher</servlet-class>
          <init-param>
               <param-name>contextConfigLocation</param-name>
               <param-value>/WEB-INF/media.xml</param-value>
          </init-param>
          <load-on-startup>2</load-on-startup>
     </servlet>
     <servlet-mapping>
          <servlet-name>media</servlet-name>
          <url-pattern>/media/*</url-pattern>
     </servlet-mapping>
说明:其中MediaDispatcher extends DispatcherServlet,并在init初始化servlet时,调用了以下代码:
 getServletContext().setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,
        getWebApplicationContext());
因为DispatcherServlet加载的media.xml只在这个servlet中有效,加入以上代码后,其他servlet也可以调用。
2、在/WEB-INF/media.xml中定义远程服务如下,如果没有显示给出contextConfigLocation则默认地址为/WEB-INF/media-servlet.xml文件:
     <bean name="/btmedia"
          class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
          <property name="service" ref="mediaService" />
          <property name="serviceInterface" value="com.hd123.bt.cmi.IMediaService" />
     </bean>
3、在client端中定义调用服务如下:
    <bean id="mediaService"
          class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
          <property name="serviceUrl" value="${JPOSBTSVR}/media/btmedia" />
          <property name="serviceInterface" value="com.hd123.bt.cmi.IMediaService" />
     </bean>

PS1.Spring远程调用与RMI比较:
    在JAVA中,如果用RMI远程方法调用,需要实现Remote接口,同时要求实现该接口的类是可以序列化的。因此在使用RMI调用时,有时会有很多麻烦,因为有时候我们的类往往是不可序列化的,比如包含了进程句枸、数据库连接等。
    使用Spring远程调用就没有该问题,Spring的远程方法调用只要求接口参数必须是可序列化的,而对于实现接口的类来说,则不要求其可序列化。

PS2.在WEB端用Spring的另一个好处是可以利用它来进行数据库连接池管理,而不需要程序员手动配置tomcat的连接池。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值