spring整合hibernate(注解、xml)applicationContext.xml配置

  转载:http://my.oschina.net/xiaoen/blog/122439

每次ssh框架整合都很麻烦,今天有空余时间总结下(主要总结spring+hibernate):

1.注解方式整合:

    applicationContext.xml配置文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<? 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"
      xmlns:context = "http://www.springframework.org/schema/context"
      xsi:schemaLocation="
          http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans.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.xsd
          http://www.springframework.org/schema/context
          http://www.springframework.org/schema/context/spring-context.xsd">
     < context:component-scan base-package = "com.test" />
     < bean class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
       < property name = "locations" >
         < list >
             < value >classpath:jdbc.properties</ value >
         </ list >
       </ property >
     </ bean >
     < bean id = "c3p0DataSource" destroy-method = "close"
         class = "com.mchange.v2.c3p0.ComboPooledDataSource" >
         < property name = "driverClass" value = "${driverClass}" />
         < property name = "jdbcUrl" value = "${url}" />
         < property name = "user" value = "${user}" />
         < property name = "password" value = "${password}" />
         < property name = "initialPoolSize" value = "${initialPoolSize}" />
         < property name = "minPoolSize" value = "${minPoolSize}" />
         < property name = "maxPoolSize" value = "${maxPoolSize}" />
         < property name = "maxIdleTime" value = "${maxIdleTime}" />
     </ bean >                
     < bean id = "sessionFactory"
         class = "org.springframework.orm.hibernate4.LocalSessionFactoryBean" >
         < property name = "dataSource" ref = "c3p0DataSource" />
         < property name = "packagesToScan" >
             < list >
                 < value >com.test.bean</ value >
             </ list >
         </ property >
         < property name = "hibernateProperties" >
             < props >
                 < prop key = "hibernate.dialect" >${dialect}</ prop >
                 < prop key = "hibernate.show_sql" >${show_sql}</ prop >
                 < prop key = "hibernate.format_sql" >${format_sql}</ prop >
                 < prop key = "hibernate.use_sql_commants" >${use_sql_comments}</ prop >
                 < prop key = "hibernate.hbm2ddl.auto" >${hbm2ddl.auto}</ prop >
             </ props >
         </ property >
     </ bean >
     < bean id = "txManager"
         class = "org.springframework.orm.hibernate4.HibernateTransactionManager" >
         < property name = "sessionFactory" ref = "sessionFactory" />
     </ bean >
     < tx:advice id = "txAdvice" transaction-manager = "txManager" >
         < tx:attributes >
             < tx:method name = "get*" read-only = "true" />
             < tx:method name = "*" />
         </ tx:attributes >
     </ tx:advice >
     < aop:config >
         < aop:pointcut id = "bizMethods" expression = "execution(* com.test.biz.*.*(..))" />
         < aop:advisor advice-ref = "txAdvice" pointcut-ref = "bizMethods" />
     </ aop:config >
</ beans >

2.xml方式实现

    applicationContext.xml配置:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<? 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.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.xsd">
          
     <!-- 讓spring 去读取指定路径下的资源文件 -->
     < bean class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
       < property name = "locations" value = "classpath:jdbc.properties" />
     </ bean >
     
     <!-- 配置c3p0连接池 -->
     < bean id = "c3p0Source" class = "com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method = "close" >
       < property name = "driverClass" value = "${driverClass}" />
       < property name = "jdbcUrl" value = "${url}" />
       < property name = "user" value = "${user}" />
       < property name = "password" value = "${password}" />
       < property name = "initialPoolSize" value = "${initialPoolSize}" />
       < property name = "minPoolSize" value = "${minPoolSize}" />
       < property name = "maxPoolSize" value = "${maxPoolSize}" />
       < property name = "maxIdleTime" value = "${maxIdleTime}" />
     </ bean >
     
     <!-- 配置SessionFactory -->
     < bean id = "sessionFactory" class = "org.springframework.orm.hibernate4.LocalSessionFactoryBean" >
       < property name = "dataSource" ref = "c3p0Source" />
       < property name = "mappingResources" >
           < list >
             < value >/com/cdzg/spring/bean/User.hbm.xml</ value >
           </ list >
       </ property >
       < property name = "hibernateProperties" >
         < props >
                 < prop key = "hibernate.dialect" >${dialect}</ prop >
                 < prop key = "hibernate.hbm2ddl.auto" >${hbm2ddl.auto}</ prop >
                 < prop key = "hibernate.show_sql" >${show_sql}</ prop >
                 < prop key = "hibernate.format_sql" >${format_sql}</ prop >
                 < prop key = "hibernate.use_sql_comments" >${use_sql_comments}</ prop >
             </ props >
       </ property >
     </ bean >
     
     <!-- 配置事务管理器 -->
     < bean id = "txManager" class = "org.springframework.orm.hibernate4.HibernateTransactionManager" >
       < property name = "sessionFactory" ref = "sessionFactory" />
     </ bean >
     
     <!-- 定义事务通知 -->
     < tx:advice id = "txAdvice" transaction-manager = "txManager" >
       < tx:attributes >
         < tx:method name = "get*" read-only = "true" />
         < tx:method name = "*" />
       </ tx:attributes >
     </ tx:advice >
      
      <!-- 定义事务切面,并应用事务通知 -->   
      < aop:config >
       < aop:pointcut id = "xxxBizImpl" expression = "execution(* com.cdzg.spring.biz.*.*(..))" />
       < aop:advisor pointcut-ref = "xxxBizImpl" advice-ref = "txAdvice" />
      </ aop:config >
          
     < bean id = "userDaoImpl" class = "com.cdzg.spring.dao.impl.UserDaoImpl" >
         < property name = "sessionFactory" ref = "sessionFactory" />
     </ bean >
     < bean id = "userBizImpl" class = "com.cdzg.spring.biz.impl.UserBizImpl" >
         < property name = "userDao" ref = "userDaoImpl" />
     </ bean >
     < bean id = "userAction" class = "com.cdzg.spring.web.actions.UserAction" >
         < property name = "userBiz" ref = "userBizImpl" />
     </ bean >
</ beans >

注解区别:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值