• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
风吹花落泪如雨
博客园    首页    新随笔    联系   管理    订阅  订阅

spring学习笔记整理(三)-----spring整合hibernate

一、导包:

(1)spring+aop+hibernate

(2)spring-orm

(3)数据源(spring-jdbc、commons-dbcp2、c3p0)

 <properties>
    <spring.version>4.3.13.RELEASE</spring.version>
    <aspectj.version>1.8.13</aspectj.version>
    
    <hibernate.version>5.2.12.Final</hibernate.version>
    <mysql.version>5.1.38</mysql.version>
    <junit.version>4.12</junit.version>
    
    <jdk.version>1.8</jdk.version>
    
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
      <!-- Spring Framework -->
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <!-- Spring ORM -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${spring.version}</version>
    </dependency>    
    <!-- AOP -->
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>${aspectj.version}</version>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>${aspectj.version}</version>
    </dependency>
    
   <!-- Hibernate Framework-->
      <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>${hibernate.version}</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-c3p0</artifactId>
        <version>${hibernate.version}</version>
    </dependency>
    <!-- mysql connector-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.version}</version>
    </dependency>

    <!-- test -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit.version}</version>
      <scope>test</scope>
</dependency>
<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${spring.version}</version>
        <scope>test</scope>
    </dependency>
  </dependencies>
  
  <build>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>3.1</version>
              <configuration>
                  <source>${jdk.version}</source>
                  <target>${jdk.version}</target>
                  <encoding>${project.build.sourceEncoding}</encoding>
                  <showWarnings>true</showWarnings>
              </configuration>
          </plugin>
      </plugins>
  </build>

二、整合配置文件applicationContext-orm.xml

 

(1) 数据源选择

(2) 根据数据源创建SessionFactory(注入BaseDao)

(3) 事务管理器(简化BaseDao/持久层代码)

(4) 启动注解方式事务管理(配置事务注解到业务逻辑层)(其他:AOP配置方式事务)

 

<?xml version="1.0" encoding="UTF-8"?>
<beans 
xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
    <!-- 1.引入公共配置文件 db.properties-->
    <context:property-placeholder location="classpath:db.properties"/>
    <!--2.配置数据源(c3p0)-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
        <property name="driverClass" value="${dataSource.driverClassName}"></property>
        <property name="jdbcUrl"      value="${dataSource.url}"></property>
        <property name="user"          value="${dataSource.username}"></property>
        <property name="password"      value="${dataSource.password}"></property>
        <property name="maxPoolSize" value="40"></property>
        <property name="minPoolSize" value="1"></property>
        <property name="initialPoolSize" value="1"></property>
        <property name="maxIdleTime" value="20"></property> 
    </bean>
    
    <!--3.配置SessionFactory,注入BaseDao-->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
     //注入数据源 <property name="dataSource" ref="dataSource"/>
     //注入扫描的实体类的路径 <property name="packagesToScan" value="com.demo.entity" /> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect" >${hibernate.dialect}</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
            </props>
        </property>
    </bean>
    <!--4.配置事务管理-->
    <bean id="transactionManager"  class="org.springframework.orm.hibernate5.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>
    <!--5.注解事务 :transaction-manager="transactionManager" -->
    <tx:annotation-driven />    
</beans>

三、引入Spring Test 框架

//让测试运行于Spring测试环境
@RunWith(SpringJUnit4ClassRunner.class)
//Spring整合JUnit4测试时,使用注解引入多个配置文件 @ContextConfiguration(locations
={ "classpath:applicationContext-core.xml" ,"classpath:applicationContext-orm.xml" }) public class UserServiceTest { @Autowired private IUserService userService; @Test public void save() { User user = new User(); user.setUserName("Guest"); user.setPassword("123"); userService.save(user); } }
posted @ 2018-03-09 23:00  风吹花落泪如雨  阅读(78)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3