Web.xml 配置 Spring:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
默认会搜索applicationcontext.xml,如果文件名不是这个,则需要用参数指定,例如:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/rabbitMQ.xml
</param-value>
</context-param>
Log4J的web.xml中配置:
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>600000</param-value>
</context-param>
SpringMVC在web.xml中的配置,注意,它会去读serverlet-name后面加上-serverlet的文件。本例将会寻找spring-servlet.xml,寻找里面相关的配置。
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
springMVC的常用配置:
配置使用动态扫描注解
<context:annotation-config />
<context:component-scan base-package="net.oip" />
<mvc:annotation-driven />
<-- 配置前端页面解析器 -->
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:messages" />
<property name="defaultEncoding" value="UTF-8" />
</bean>
<-- 配置.properties解析-->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/WEB-INF/jdbc.properties</value>
<value>/WEB-INF/log4j.properties</value>
<value>/WEB-INF/pay.properties</value>
</list>
</property>
</bean>
<-- 配置data source,注意,里面用到的那些参数在上面通过PROPERTYPLACEHOLDERCONFIGURER注明 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.databaseurl}" p:username="${jdbc.username}" p:password="${jdbc.password}" />
<-- 配置hibernate的sessionfactory,通常将HIBERNATE配到SPRING一起 -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
<property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${jdbc.dialect}</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<-- 配置拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean id="loginInterceptor" class="xxx.xxx.xxx..LoginInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
<-- 配置事务管理 -->
<tx:annotation-driven />
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<-- 配置文件上传 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"/>
<property name="maxInMemorySize" value="10240" />
<!-- <property name="uploadTempDir" value="/upload_temp/" /> -->
<property name="maxUploadSize" value="-1"/>
</bean>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>
<-- 配置hessian,以下为客户端的HESSIAN配置。 -->
<bean id="hessianService"
class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<property name="serviceUrl" value="http://10.62.150.57:8080/com/hessian/hessianService" />
<property name="serviceInterface" value= "com.hessianstudy.service.HessianService" />
</bean>
<-- 配置hessian,以下为服务端的HESSIAN配置。要注意服务端和客户端的HESSIANSERVICE指向的类不同,服务端需要配置具体实现类 -->
<bean id="hessianService" class="com.hessian.service.HessianServiceImpl" />
<bean name="/hessianService" class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="service" ref="hessianService" />
<property name="serviceInterface" value="com.hessian.service.HessianService" />
</bean>
<-- 配置RabbitMQ,以下为客户端的HESSIAN配置。 -->
<rabbit:connection-factory id="connectionFactory" host="10.62.150.57" username="test"
password="password" port="5672" />
<rabbit:admin connection-factory="connectionFactory"/>
<!-- queue 队列声明-->
<rabbit:queue id="queue_one" durable="true" auto-delete="false" exclusive="false" name="queue_one"/>
<!-- exchange queue binging key 绑定 -->
<rabbit:direct-exchange name="my-mq-exchange" durable="true" auto-delete="false" id="my-mq-exchange">
<rabbit:bindings>
<rabbit:binding queue="queue_one" key="queue_one_key"/>
</rabbit:bindings>
</rabbit:direct-exchange>
<!-- queue litener 观察 监听模式 当有消息到达时会通知监听在对应的队列上的监听对象
<rabbit:listener-container connection-factory="connectionFactory" acknowledge="auto">
<rabbit:listener queues="queue_one" ref="com.hessian.mq.QueueOneLitener"/>
</rabbit:listener-container>