Spring2.5 Hibernate3.2 Struts2.0配置文件详解

<?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:aop="http://www.springframework.org/schema/aop"

       xmlns:tx="http://www.springframework.org/schema/tx"

       xsi:schemaLocation="

       http://www.springframework.org/schema/beans

       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

       http://www.springframework.org/schema/tx

       http://www.springframework.org/schema/tx/spring-tx-2.5.xsd

       http://www.springframework.org/schema/aop

       http://www.springframework.org/schema/aop/spring-aop-2.5.xsd" default-lazy-init="true">

二.定义数据源

       <!-- 定义数据源的Bean ,给Hibernate的sessionFactory-->

    <bean id="dataSource"

       class="org.apache.commons.dbcp.BasicDataSource">

       <property name="driverClassName"

           value="com.mysql.jdbc.Driver">

       </property>

       <property name="url"

           value="jdbc:mysql://localhost:3306/test">

       </property>

       <property name="username" value="root"></property>

       <property name="password" value="123456"></property>

    </bean>


三.定义SessionFactory

<bean id="sessionFactory"

    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

       <property name="lobHandler">

           <ref bean="lobHandler"/>

       </property>

      

       <property name="dataSource">

           <ref bean="dataSource" />

       </property>

       <property name="hibernateProperties">

           <props>

              <prop key="hibernate.dialect">

                  org.hibernate.dialect.MySQLDialect

              </prop>

              <!--设置二级缓冲-->

              <prop key="hibernate.cache.provider_class">

                  org.hibernate.cache.EhCacheProvider

              </prop>

              <!--设置二级缓冲,打开查询缓冲-->

              <prop key="hibernate.cache.use_query_cache">true</prop>

              <!--设置显示Hibernate操作的SQL语句-->

              <prop key="hibernate.show_sql">true</prop>

           </props>

       </property>

       <property name="mappingResources">

           <list>           

              <value>

                  com/njwj/model/test.hbm.xml

              </value>

           </list>

       </property>

    </bean>


四.处理一些需要处理注入的Bean

<!-- 申明处理Clob对象LobHandler -->

    <bean id="lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true" />

    <bean id="TestHandlerDao" class="com.njwj.dao.TestHandlerDao">

    <property name="sessionFactory" ref="sessionFactory"></property>

    </bean>

   

    <bean id="HandlerManager" class="com.njwj.service.HandlerManager">

    <property name="saveTestHanlerdao" ref="TestHandlerDao"></property>

    </bean>   



五.配置事务管理器

<!-- 配置事务管理器 -->

    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

       <property name="sessionFactory">

           <ref local="sessionFactory"/>

       </property>

    </bean>

六.配置事务管理特性

    <!-- 配置事务特性,配置add、delete和update开始的方法,事务传播特性为required-->      

    <tx:advice id="txAdvice" transaction-manager="transactionManager">

    <tx:attributes>

        <tx:method name="insert*" propagation="REQUIRED"/>

        <tx:method name="delete*" propagation="REQUIRED"/>

        <tx:method name="update*" propagation="REQUIRED"/>

        <tx:method name="add*" propagation="REQUIRED"/>

        <tx:method name="find*" read-only="true"/>

        <tx:method name="list*" read-only="true"/>

    </tx:attributes>

</tx:advice>




七.配置哪些类进行事务管理

    <!-- 配置那些类的方法进行事务管理,当前com.njwj.service包中的子包、类中所有方法需要,还需要参考tx:advice的设置 -->

    <aop:config>

    <aop:pointcut id="allManagerMethod" expression="execution (* com.njwj.service.*.*(..))"/>

    <aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod"/>

</aop:config>




八.配置Spring采用annotation(可选)

    <context:annotation-config />





Web配置:


<!--定义Spring的配置的位置,可以定义多个配置文件,可以使用通配符。 -->

    <context-param>

       <param-name>contextConfigLocation</param-name>

       <param-value>classpath:applicationContext*.xml</param-value>

    </context-param>

    <!--设置一起动当前的Web应用,就加载Spring,让Spring管理Bean-->

    <listener>

       <listener-class>

           org.springframework.web.context.ContextLoaderListener

       </listener-class>

    </listener>

       <!--解决Hibernate延迟加载出现的问题,需要放到struts2过滤器之前-->

    <filter>

       <filter-name>lazyLoadingFilter</filter-name>

       <filter-class>

           org.springframework.orm.hibernate3.support.OpenSessionInViewFilter

       </filter-class>

    </filter>

   

       <!--Struts2的过滤器,使用Struts2,必须配置该项-->

    <filter>

       <filter-name>struts2</filter-name>

       <filter-class>

           org.apache.struts2.dispatcher.FilterDispatcher

       </filter-class>

    </filter>

   

    <!--解决Hibernate延迟加载出现的问题,仍需要放到struts2过滤器mapping之前-->

<filter-mapping>

       <filter-name>lazyLoadingFilter</filter-name>

       <url-pattern>*.action</url-pattern>

    </filter-mapping>

<!--Struts2的过滤器,配套的filter-mapping-->

    <filter-mapping>

       <filter-name>struts2</filter-name>

       <url-pattern>/*</url-pattern>

    </filter-mapping>

你可能感兴趣的:(spring,Hibernate,bean,Web,配置管理)