spring整合struts2和JPA

Bos的配置文件的配置

                     注:本文档整理的是Maven管理的项目中个配置文件的搭建

  第一部分(web.xml):

    1. 在bos中配置spring整合struts2 时:
    2. <!-- 扫描 @Server @Controller @Repository -->
  1. <context:component-scan base-package="com.shuguolili"/>

      a)   要在web.xml问文件中配置spring配置文件的位置:

        <!-- spring配置文件位置 -->

        <context-param>

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

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

             </context-param>

      b)      在web.xml文件中配置核心监听器

          <!-- spring核心监听器 -->

             <listener>

                    <listener-class>

            org.springframework.web.context.ContextLoaderListener

          </listener-class>

             </listener>

      c)   在struts2的核心过滤器(拦截器)

        <filter>

          <filter-name>struts</filter-name>

          <filter-class>

            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

          </filter-class>

        </filter>

        <filter-mapping>

               <filter-name>struts</filter-name>

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

        </filter-mapping>

      d)      配置将开启事务和关闭事务提前到web层的注解(放在action中去关闭)

 

        <filter>

                             <filter-name>OpenSessionInViewFilter</filter-name>

                             <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class>

        </filter>

        <filter-mapping>

                             <filter-name>OpenSessionInViewFilter</filter-name>

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

        </filter-mapping>

  第二部分:(service层applicationContext.xml)

    1. 在applicationContext.xml文件里开启spring的注解扫描
    2. 声明事务管理器配置

        <!-- JPA事务管理器 -->(不止一种事务管理器)

        <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">

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

        </bean>

      3.开启注解管理事务

          <!-- 开启注解管理事务 -->

        <tx:annotation-driven transaction-manager="transactionManager"/>

      4.配置加载数据库的配置(配置连接数据库所需的账号密码等)

        <!-- 加载properties文件 -->

        <context:property-placeholder location="classpath:config.properties" />

      5.数据库连接池配置

          <!-- 数据库连接池 -->

        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

                <property name="driverClass" value="${jdbc.driver}" />

                <property name="jdbcUrl" value="${jdbc.url}" />

                <property name="user" value="${jdbc.user}" />

                <property name="password" value="${jdbc.password}" />

        </bean>

 

     6.JPA的配置

        <!-- 进行JPA配置 -->

               <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">

                             <!-- 注入连接池 -->

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

                             <!-- 配置实体类注解扫描 -->找到数据库和实体类的映射

                             <property name="packagesToScan" value="cn.itcast.bos.domain" />

                             <!-- 持久化的提供者 -->真正操作数据库的对象

                             <property name="persistenceProvider">

                                <bean class="org.hibernate.ejb.HibernatePersistence" />

                           </property>

                           <!-- Hibernate JPA的适配器 -->配置了数据库的方言,数据库类型,数据库建表方式,是否打印sql语句

                         <property name="jpaVendorAdapter">

                                    <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">

                                              <property name="generateDdl" value="true" /><!-- 是否自动创建表 -->

                                              <property name="database" value="ORACLE" /><!-- 数据库 -->

                                              <property name="databasePlatform"

                value="org.hibernate.dialect.Oracle10gDialect"></property><!-- 数据库方言 -->

                                              <property name="showSql" value="true" /><!-- 是否打印SQL语句 -->

                                    </bean>

                           </property>

                           <!-- JPA的方言 -->

                          <property name="jpaDialect">

                                    <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect" />

                         </property>

               </bean>

    7.整合spring data jpa:告诉jpa我的dao层在哪

      <jpa:repositories base-package="cn.itcast.bos.dao"></jpa:repositories>

 

posted @ 2018-03-20 19:35  K.Y_Lee  阅读(247)  评论(0编辑  收藏  举报