通过XML的方式配置整合Spring+Hibernate+Struts2

在myEclipse内配置Spring+Hibernate+sturts2 整合框架,

通过在项目上右键导入框架,顺序是 Spring>Hibernate>Struts2

applicationContext.xml的配置内容

<?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:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
                        http://www.springframework.org/schema/beans/spring-beans-4.1.xsd 
                        http://www.springframework.org/schema/tx 
                        http://www.springframework.org/schema/tx/spring-tx.xsd
                        http://www.springframework.org/schema/aop 
                        http://www.springframework.org/schema/aop/spring-aop-4.1.xsd" 
                        xmlns:tx="http://www.springframework.org/schema/tx">

    <!-- 数据库连接的数据源 -->
    <bean id="dataSource"
        class="org.apache.commons.dbcp.BasicDataSource">
        <property name="url"
            value="jdbc:mysql://localhost:3306/jycrm">
        </property>
        <property name="username" value="root"></property>
        <property name="password" value="root"></property>
        <!-- 自动生成配置文件,可能会少生成数据库驱动,需要手动写入 -->
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
    </bean>
    <!-- 根据数据源返回的session 工厂类 -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource">
            <ref bean="dataSource" />
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">
                    org.hibernate.dialect.MySQLDialect
                </prop>
            </props>
        </property>
        <!-- 实体类的数据源配置文件 -->
        <property name="mappingResources">
            <list>
                <value>com/jfkj/Bean/JyClientCompany.hbm.xml</value>
                <value>com/jfkj/Bean/JyNewcustomerInformation.hbm.xml</value>
                <value>com/jfkj/Bean/JyNewcustomerRecord.hbm.xml</value>
            </list>
        </property>
    </bean>
    <!-- 配置的事务管理对象 TransactionManager 自动生成的-->    
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
    
    <!-- 配置事务的隔离级别和传播特性 -->
    <tx:advice id="ta" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="add*" propagation="REQUIRED" isolation="READ_COMMITTED"/>
            <tx:method name="update*" propagation="REQUIRED" isolation="READ_COMMITTED"/>
            <tx:method name="delete*" propagation="REQUIRED" isolation="READ_COMMITTED"/>
            <tx:method name="query*" propagation="REQUIRED" isolation="DEFAULT" read-only="true"/>
        </tx:attributes>
    </tx:advice>
    
    <!-- 配置AOP切面,将事务引入具体类的方法中 -->
    <aop:config>    
        <aop:pointcut expression="execution(* com.jfkj.Dao.Imp.*.*(..))" id="pc"/>
        <aop:advisor advice-ref="ta" pointcut-ref="pc"/>
    </aop:config>
    
    <!-- 通过容器创建Dao层实现类对象 -->
    <bean id="CCD" class="com.jfkj.Dao.Imp.client_companyDao">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    
    <bean id="nitd" class="com.jfkj.Dao.Imp.newcustomer_informationDaoImp">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    
    <!-- 创建service 的实现的类 -->
    <bean id="CCS" class="com.jfkj.service.imp.client_companyService">
        <property name="ccd" ref="CCD"></property><!-- name是属性名,有提示,ref是注入对象,对应上面的Dap层对象 -->
    </bean>
    
    <bean id="nits" class="com.jfkj.service.imp.newcustomer_informationServiceImp">
        <property name="iniDao" ref="nitd"></property>
    </bean>
    
    <!-- action 的实现类 -->
    <bean id="CCA" class="com.jfkj.action.client_companyAction" scope="prototype">
        <property name="ccs" ref="CCS"></property><!-- name是属性名,有提示,ref是注入对象,对应上面的service对象 -->
    </bean>
    <bean id="nia" class="com.jfkj.action.newcustomer_informationAction" scope="prototype">
        <property name="nis" ref="nits"></property>
    </bean>
    <tx:annotation-driven transaction-manager="transactionManager" /></beans>

struts.xml中的配置

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
    <constant name="struts.objectFactory" value="spring"></constant>
    <package name="stuPk" extends="struts-default" namespace="/">
        <action name="cca_*" class="CCA" method="{1}">
            <result name="show">/houtai/demo/Stocktab.jsp</result>
        </action>
        
        <action name="nia_*" class="nia" method="{1}">
            <result name="show">/houtai/demo/Stocktab.jsp</result>
        </action>
    </package>

</struts>    

 

posted @ 2019-05-09 12:06  细竹赫映姬  阅读(97)  评论(0)    收藏  举报