Struts ,Hibernate ,Spring 常用整合配置方法.

来源:互联网 发布:nginx apache ssl 编辑:程序博客网 时间:2024/05/16 11:18
java web 开发中常用的 框架 就是 ,struts 1 ,hibernate ,spring 整合,
在这里把它贴出来,经常忘记,加深一下印象。

首先配置 基本的 struts 1
web.xml 配置方式如下,先加上这个配置:
  1. <servlet>
  2.         <servlet-name>action</servlet-name>
  3.         <servlet-class>
  4.             org.apache.struts.action.ActionServlet
  5.         </servlet-class>
  6.         <init-param>
  7.             <param-name>config</param-name>
  8.             <param-value>/WEB-INF/struts-config.xml</param-value>
  9.         </init-param>
  10.     </servlet>
  11.    
  12.     <servlet-mapping>
  13.         <servlet-name>action</servlet-name>
  14.         <url-pattern>*.do</url-pattern>
  15.     </servlet-mapping>
下面是spring 与 hibernate,
这个与hibernate 配置 ,细分成了 三个spring文件,看起来更加清晰。
先在web.xml 加入这个配置:
  1.     <listener>
  2.         <listener-class>             
  3.             org.springframework.web.context.ContextLoaderListener
  4.         </listener-class>
  5.     </listener>
  6.  
  7.     <context-param>
  8.         <param-name>contextConfigLocation</param-name>
  9.         <param-value>
  10.             /WEB-INF/config/spring-basic-Context.xml,
  11.             /WEB-INF/config/spring-dao-Context.xml,
  12.             /WEB-INF/config/spring-services-Context.xml     
  13.         </param-value>
  14.     </context-param>

下面分别是 三个spring 配置,,简单的book操作,做个例子。
  1. <!-- spring-basic-Context.xml 配置--
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <beans xmlns="http://www.springframework.org/schema/beans"
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

  6.     <bean id="propertyConfigurer"
  7.         class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  8.         <property name="locations">
  9.             <list>
  10.                 <value>/WEB-INF/config/db.properties</value>
  11.             </list>
  12.         </property>
  13.     </bean>

  14.     <bean id="c3P0dataSource"
  15.         class="com.mchange.v2.c3p0.ComboPooledDataSource">
  16.         <property name="driverClass" value="${DB.DRIVER}" />
  17.         <property name="jdbcUrl" value="${DB.URL}" />
  18.         <property name="user" value="${DB.USERNAME}" />
  19.         <property name="password" value="${DB.PASSWORD}" />
  20.         <property name="initialPoolSize" value="10" />
  21.         <property name="maxPoolSize" value="30" />
  22.     </bean>
  23.     <bean id="sessionFactory"
  24.         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  25.         <property name="dataSource">
  26.             <ref bean="c3P0dataSource" />
  27.         </property>
  28.       
  29.         <property name="hibernateProperties">
  30.             <props>
  31.                 <prop key="hibernate.dialect">
  32.                     org.hibernate.dialect.MySQLDialect
  33.                 </prop>
  34.                 <prop key="hibernate.show_sql">true</prop>
  35.                 <prop key="hibernate.format_sql">true</prop>
  36.                 <prop key="hibernate.jdbc.batch_size">25</prop>
  37.             </props>
  38.         </property>

  39.         <property name="mappingResources">
  40.             <list>
  41.                 <value>com/birds/book/bean/Book.hbm.xml</value>
  42.             </list>
  43.         </property>
  44.     </bean>


  45.     <bean id="myTxManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  46.         <property name="sessionFactory" ref="sessionFactory" />
  47.     </bean>
  1.  <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
  2.         <property name="transactionManager" ref="myTxManager" />
  3.         <property name="transactionAttributes">
  4.             <props>
  5.                 <prop key="save*">PROPAGATION_REQUIRED,-com.birds.book.common.BookException</prop>
  6.                 <prop key="update*">PROPAGATION_REQUIRED</prop>
  7.                 <prop key="delete*">PROPAGATION_REQUIRED</prop>
  8.                 <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
  9.             </props>
  10.         </property>
  11.     </bean>

  12.     <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
  13.         <property name="beanNames">
  14.             <value>*Services</value>
  15.         </property>
  16.        
  17.         <property name="interceptorNames">
  18.             <list>
  19.                 <value>transactionInterceptor</value>
  20.             </list>
  21.         </property>
  22.     </bean>

  23. </beans>

  1. <!-- spring-dao-Context.xml 配置-->
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <beans xmlns="http://www.springframework.org/schema/beans"
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"
  6.   >
  7.     <bean id="bookDao" class="com.birds.book.dao.impl.BookDaoImpl">
  8.         <property name="sessionFactory" ref="sessionFactory"></property>
  9.     </bean>
  10. </beans>
  11. <!-- spring-services-Context.xml  配置-->
  12. <?xml version="1.0" encoding="UTF-8"?>
  13. <beans xmlns="http://www.springframework.org/schema/beans"
  14.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  15.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"
  16.     >
  17.     <bean id="bookServices" class="com.birds.book.services.impl.BookServicesImpl">
  18.        <property name="bookDaoImpl" ref="bookDao" />
  19.     </bean>
  20. </beans>
         
  1. <!-- spring-action-Context.xml 配置-->
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <beans xmlns="http://www.springframework.org/schema/beans"
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"
  6.     > 
  7.     <bean name="/book" class="com.birds.view.action.BookAction" scope="prototype">
  8.         <property name="bookServicesImpl" ref="bookServices" />
  9.     </bean>
  10. </beans>
      
  1. <!-- struts-config.xml 配置-->
  2. <?xml version="1.0" encoding="UTF-8"?>
  3. <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
  4. <struts-config>
  5.     <data-sources />
  6.     <form-beans>

  7.         <form-bean name="bookForm" type="com.birds.view.form.BookForm">         
  8.         </form-bean>
  9.     </form-beans>
  10.     <global-exceptions />
  11.     <global-forwards />
  12.     <action-mappings>
  13.         <action path="/book"
  14.         name="bookForm"
  15.         type="org.springframework.web.struts.DelegatingActionProxy"
  16.         scope="request">
  17.             <forward name="success" path="/book.jsp" />
  18.         </action>
  19.     </action-mappings>  

  20.     <plug-in
  21.         className="org.springframework.web.struts.ContextLoaderPlugIn">
  22.         <set-property property="contextConfigLocation"
  23.             value="/WEB-INF/config/spring-action-Context.xml" />
  24.     </plug-in>
  25. </struts-config>

     以上配置完,都是依赖注入。 这些框架的配置 都差不多。主要还是根据实际的业务来 加其他的组件进去。