关于Java 的maven项目整合Struts2 + Spring + SpringDataJPA 的基本配置

关于Java 的maven项目整合Struts2 + Spring + SpringDataJPA 的配置问题:
1.在项目的pom.xml导入依赖坐标:
(1) IOC导入,Spring-context依赖beans、core、expression,所以不需要再重复导入其依赖的坐标,会自动导入。

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--AOP导入-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!--Spring测试集成-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!--WEB集成,配置监听器-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!--整合持久层-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!--整合日志 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
        </dependency>

(2)spring整合jpa

 <!--c3p0数据库连接池,如果是druid则找druid,
 一般都用c3p0,这里用c3p0. -->
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>${c3p0.version}</version>
        </dependency>
<!--hibernate 框架 --> 
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${hibernate.version}</version>
        </dependency>
 <!--hibernate框架整合jpa -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>${hibernate.version}</version>
        </dependency>       

2.项目的web.xml中配置spring监听器
(1)spring配置文件位置

        <context-param>
            <param-name>contextConfigLocation</param-name>
            <paramvalue>
            classpath:applicationContext.xml</param-value>
        </context-param>
        <!-- spring核心监听器 -->
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>

3.src/main/resources下建立applicationContext.xml

 <!-- 扫描 @Service @Controller @Repository -->
        <context:component-scan base-package="扫描mvc层的包"/>
        <!-- 加载properties文件 -->
        <context:property-placeholder  location="classpath:config.properties" />
        <!--config.properties与src/main/resources下
        提供config.properties外部属性文件名一致 -->
        <!-- 数据库连接池 -->
        <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>
   <!--${jdbc.driver}等都是外部属性文件引入jdbc.driver
必须与属性文件配置的key一致 -->
        <!-- 整合JPA配置 -->
        <bean id="entityManagerFactory"
            class="org.springframework.orm.
            jpa.LocalContainerEntityManagerFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <property name="packagesToScan" value="实体类的包目录" />
            <!-- 指定一个持久化提供者 -->
            <property name="persistenceProvider">
                <bean class="org.hibernate.jpa.HibernatePersistenceProvider" />
            </property>

            <!-- 指定Jpa持久化实现厂商类,这里以Hibernate为例 -->
            <property name="jpaVendorAdapter">
                 <!-- Hibernate对Jpa的实现 -->
                <bean class="org.springframework.orm.jpa.vendor.
                HibernateJpaVendorAdapter">
                    <property name="generateDdl" value="true" />
                    <!-- 声明用的数据库是Oracle,
                    MySQL则用下面注释掉那个-->
                    <property name="database" value="ORACLE" />  
<!--<property name="database" value="MYSQL" />  -->
<!--  <property name="databasePlatform"value="org.hibernate.
dialect.MySQL5Dialect" />  -->
<property name="databasePlatform"
value="org.hibernate.dialect.Oracle10gDialect" />

                    <property name="showSql" value="true" />
                </bean>
            </property>

            <property name="jpaDialect">
                <bean class="org.springframework.orm.jpa.vendor
                .HibernateJpaDialect" />
            </property> 
<property name="jpaPropertyMap"> 
                <map> 
        <!-- 将HQL映射成sql语句-->  
    <entry key="hibernate.query.substitutions" 
                    value="true 1, false 0" /> 

<!-- 为Hibernate关联的批量抓取设置默认数量.  建议的取值为4, 8, 和16 -->
<entry key="hibernate.default_batch_fetch_size" value="16" /> 
<!-- 为单向关联(一对一, 多对一)的外连接抓取(outer join fetch)树
设置最大深度. 值为0意味着将关闭默认的外连接抓取. 取值 建议在0到3之间
取值   -->
<entry key="hibernate.max_fetch_depth" value="2" />                         
<!-- 如果开启, Hibernate将收集有助于性能调节的统计数据.取值true | false -->
<entry key="hibernate.generate_statistics" value="true" /> 

<!-- 开启CGLIB来替代运行时反射机制(系统级属性). 反射机制有时在除错
时比较有用. 注意即使关闭这个优化,Hibernate还是需要CGLIB.
 你不能在hibernate.cfg.xml中设置此属性.取值true | false -->
<entry key="hibernate.bytecode.use_reflection_optimizer" value="true" />

<!-- 能用来完全禁止使用二级缓存. 对那些在类的映射定义中指定的类,
会默认开启二级缓存. 取值 true|false -->
<entry key="hibernate.cache.use_second_level_cache" value="false" /> 

<!-- 允许查询缓存, 个别查询仍然需要被设置为可缓存的. 
取值 true|false -->
<entry key="hibernate.cache.use_query_cache" value="false" />
                </map> 
            </property> 
</bean>
<!-- JPA事务管理器  -->
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager" >
<property name="entityManagerFactory" ref="entityManagerFactory" />
        </bean>
<!-- 注解管理事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>

4.src/main/resources下提供config.properties外部属性文件、log4j.properties日志配置
以上配置完成后,启动bos_management工程可以在数据库创建表,证明基本配置成功完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值