34.1.3? Spring的web.xml配置
和其他Web框架一样,Spring的MVC框架是一个请求驱动的Web框架,其设计围绕一个中心的Servlet进行,它能将请求分发给控制器,并提供其他功能帮助Web应用开发。
DispatcherServlet实际上是一个Servlet,它从HttpServlet继承而来。和其他Servlet一样,DispatcherServlet定义在Web应用的web.xml文件里。DispatcherServlet处理的请求必须在同一个web.xml文件里使用url-mapping定义映射,下面的例子演示了如何配置DispatcherServlet:
<web-app> <servlet> <servlet-name>Dispatcher</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Dispatcher</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
在上面的配置中,所有以.do结尾的请求都会由名为Dispatcher的DispatcherServlet处理,该Servlet配置了初始化参数contextConfigLocation,设置IoC配置文件的名称为/WEB-INF/application- Context.xml。如果不配置该参数,则它会读取默认的文件名/WEB-INF/Dispatcher-servlet.xml。通常习惯使用applicationContext.xml,也可以配置多个XML文件:
<init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml, /WEB-INF/part2.xml</param-value> </init-param>
//spring 加hibernate配置
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> ?<bean id="mySessionFactory" ? class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> ? <property name="configLocation"> ?? <value>classpath:hibernate.cfg.xml</value> ? </property> ?</bean> ?<bean id="myTransactionManager" ? class="org.springframework.orm.hibernate3.HibernateTransactionManager"> ? <property name="sessionFactory"> ?? <ref bean="mySessionFactory" /> ? </property> ?</bean> ?<bean id="myBaseTransactionProxy" ? class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" ? abstract="true"> ? <property name="transactionManager" ref="myTransactionManager" /> ? <property name="transactionAttributes"> ?? <props> ??? <prop key="*">PROPAGATION_REQUIRED</prop> ??? <!-- ???? <prop key="insert*">PROPAGATION_REQUIRED</prop> ???? <prop key="save">PROPAGATION_REQUIRED</prop> ???? <prop key="update*">PROPAGATION_REQUIRED</prop> ???? <prop key="edit*">PROPAGATION_REQUIRED</prop> ???? <prop key="del*">PROPAGATION_REQUIRED</prop> ???? <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop> ???? <prop key="query*">PROPAGATION_REQUIRED,readOnly</prop> ???? <prop key="disPlay*">PROPAGATION_REQUIRES_NEW</prop> ??? --> ?? </props> ? </property> ?</bean> ?<bean id="UsersDAO" class="com.notepad.dao.UsersDAO"> ? <property name="sessionFactory"> ?? <ref bean="mySessionFactory" /> ? </property> ?</bean> ?<bean id="userTarget" class="com.notepad.bussies.UserService"> ? <property name="usersDao"> ?? <ref local="UsersDAO" /> ? </property> ?</bean> ?<bean id="UserService" parent="myBaseTransactionProxy"> ? <property name="proxyTargetClass"> ?? <value>true</value> ? </property> ? <property name="target"> ?? <ref local="userTarget" /> ? </property> ?</bean> </beans>