博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring整合hibernate:3、使用XML进行声明式的事务管理
阅读量:5041 次
发布时间:2019-06-12

本文共 2724 字,大约阅读时间需要 9 分钟。

配置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
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
beans
xmlns
=
""
    
xmlns:xsi
=
""
xmlns:context
=
""
    
xmlns:aop
=
""
xmlns:tx
=
""
    
xsi:schemaLocation="
           
           
           
           
           
           
           
">
    
<
context:annotation-config
/>
    
<
context:component-scan
base-package
=
"com.fz.annotation"
/>
    
<
bean
        
class
=
"org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
>
        
<
property
name
=
"locations"
value
=
"classpath:jdbc.properties"
/>
    
</
bean
>
    
<
bean
id
=
"dataSource"
destroy-method
=
"close"
        
class
=
"org.apache.commons.dbcp.BasicDataSource"
>
        
<
property
name
=
"driverClassName"
value
=
"${jdbc.driverClassName}"
/>
        
<
property
name
=
"url"
value
=
"${jdbc.url}"
/>
        
<
property
name
=
"username"
value
=
"${jdbc.username}"
/>
        
<
property
name
=
"password"
value
=
"${jdbc.password}"
/>
    
</
bean
>  
    
<
bean
id
=
"sessionFactory"
        
class
=
"org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
>
        
<
property
name
=
"dataSource"
ref
=
"dataSource"
/>
        
<
property
name
=
"packagesToScan"
>
            
<
list
>
                
<
value
>com.fz.annotation.model</
value
>
            
</
list
>
        
</
property
>
        
<
property
name
=
"hibernateProperties"
>
            
<
props
>
                
<
prop
key
=
"hibernate.dialect"
>org.hibernate.dialect.MySQLDialect</
prop
>
                
<
prop
key
=
"hibernate.show_sql"
>true</
prop
>
                
<
prop
key
=
"hibernate.format_sql"
>true</
prop
>
            
</
props
>
        
</
property
>
    
</
bean
>
    
<!-- 使用xml方式管理事务 -->
    
<
bean
id
=
"txManager"
        
class
=
"org.springframework.orm.hibernate3.HibernateTransactionManager"
>
        
<
property
name
=
"sessionFactory"
ref
=
"sessionFactory"
/>
    
</
bean
>
    
<
aop:config
>
        
<
aop:pointcut
            
expression
=
"execution(public * com.fz.annotation.service..*.*(..))"
            
id
=
"bussinessService"
/>
        
<
aop:advisor
advice-ref
=
"txAdvice"
pointcut-ref
=
"bussinessService"
/>
    
</
aop:config
>
    
<
tx:advice
id
=
"txAdvice"
transaction-manager
=
"txManager"
>
        
<
tx:attributes
>
            
<!-- 所有以find开头的方法,readOnly=true -->
            
<
tx:method
name
=
"find*"
read-only
=
"true"
/>
            
<
tx:method
name
=
"add*"
propagation
=
"REQUIRED"
/>
            
<
tx:method
name
=
"insert*"
propagation
=
"REQUIRED"
/>
            
<
tx:method
name
=
"update*"
propagation
=
"REQUIRED"
/>
            
<
tx:method
name
=
"del*"
propagation
=
"REQUIRED"
/>
            
<
tx:method
name
=
"delete*"
propagation
=
"REQUIRED"
/>
        
</
tx:attributes
>
    
</
tx:advice
>
</
beans
>

1.定义一个aop:pointcut的切入点,也就是需要处理事务的具体service

2.定义一个具体该怎么做的指导aop:advisor,需要指导的pointcut就是刚才定义的pointcut。指导的建议可以自定义一个建议txAdvice

3.txAvice需要使用到数据库,所以需要一个Spring具体管理的事务对象txManager。

4.Spring管理事务又需要SessionFactory,所以又配置一个SessionFactory的属性。而SessionFactory里又指定了一个数据源。

转载于:https://www.cnblogs.com/meet/p/4762438.html

你可能感兴趣的文章
时间>金钱
查看>>
元数据元素
查看>>
Visual Studio Code 构建C/C++开发环境
查看>>
web自己主动保存表单
查看>>
lua基金会【五岁以下儿童】I/O文件操作
查看>>
一个小的日常实践——高速Fibonacci数算法
查看>>
创建与删除索引
查看>>
java的基本数据类型
查看>>
机器学些技法(9)--Decision Tree
查看>>
静态页面复习--用semantic UI写一个10min首页
查看>>
在Windows下安装64位压缩包版mysql 5.7.11版本的方法
查看>>
drf权限组件
查看>>
输入月份和日期,得出是今年第几天
查看>>
利用mysqldump备份mysql
查看>>
Qt中子窗口全屏显示与退出全屏
查看>>
使用brew安装软件
查看>>
[BZOJ1083] [SCOI2005] 繁忙的都市 (kruskal)
查看>>
吴裕雄 python 机器学习——数据预处理嵌入式特征选择
查看>>
Centos6.4安装JDK
查看>>
201521123069 《Java程序设计》 第4周学习总结
查看>>