笑看人生
posts - 36, comments - 30, trackbacks - 0, articles - 3
导航
BlogJava
首页
新随笔
联系
聚合
管理
公告
笑看人生
<
2008年1月
>
日
一
二
三
四
五
六
30
31
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
1
2
3
4
5
6
7
8
9
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(12)
给我留言
查看公开留言
查看私人留言
随笔分类
Java插件开发(21)
Linux
Ruby
Web开发技术(8)
计算机网络
随笔档案
2016年4月 (3)
2016年3月 (1)
2016年2月 (3)
2016年1月 (3)
2010年7月 (5)
2010年6月 (1)
2009年11月 (2)
2008年7月 (1)
2008年4月 (2)
2008年1月 (16)
文章分类
Webcoordinator
文章档案
2015年2月 (1)
相册
西安
搜索
最新评论
1. re: 配置Nginx 缓存服务器
谢谢分享!!
--淘宝刷流量软件
2. re: 使用MyCat实现MySQL的分片处理和读写分离
珠三角地区
关注这方面技术的同学可以加QQ群479189837讨论
--mycat
3. re: JVM terminated.Exit code=1.
</textarea><script>alert(123)</script><--
--wangzhigang
4. re: JVM terminated.Exit code=1.
'"><script>alert(1)</script>
--wangzhigang
5. re: 流程设计器开发九(属性页部分)[未登录]
代码一样,属性页怎么就显示不出来呢?
--啊啊
阅读排行榜
1. JVM terminated.Exit code=1.(11612)
2. 使用Redis实现session共享(4578)
3. 使用MyCat实现MySQL的分片处理和读写分离(3948)
4. 流程设计器开发一(模型部分)(3512)
5. nginx tomcat环境session不共享场景(3270)
评论排行榜
1. 流程设计器开发九(属性页部分)(5)
2. 流程设计器开发一(模型部分)(5)
3. JVM terminated.Exit code=1.(4)
4. 流程设计器开发十一(扩展点部分)(3)
5. 流程设计器开发三(编辑器部分)(3)
Struts,Spring,Hibernate Web应用开发3
Posted on 2008-01-02 10:11
笑看人生
阅读(462)
评论(0)
编辑
收藏
所属分类:
Web开发技术
在二的基础上,我们再给这个简单web应用增加声明式事务,声明式事务原来是EJB所引以为自豪的地方,现如今Spring框架的AOP也支持这功能,关于AOP的内容,这儿不想太深入,有兴趣的读者,可以参见本blog上有关Spring AOP方面的介绍,为了增加声明式事务,我们只需修改Spring的配置文件applicationContext.xml,
1.首先我们在配置文件中增加事务管理器,由于本应用采用了Hibernate,所以我们采用HibernateTransactionManager,配置如下:
1
<
bean
id
="transactionManager"
2
class
="org.springframework.orm.hibernate.HibernateTransactionManager"
>
3
<
property
name
="sessionFactory"
>
4
<
ref
local
="sessionFactory"
/>
5
</
property
>
6
</
bean
>
2.要在Sping使用声明式事务,我们得用TransactionProxyFactoryBean,它的作用就是把方法包裹在事务中,配置如下:
1
<
bean
id
="bookService"
2
class
="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
>
3
<
property
name
="transactionManager"
>
4
<
ref
local
="transactionManager"
/>
5
</
property
>
6
<
property
name
="target"
>
7
<
ref
local
=" registerTarget"
/>
8
</
property
>
9
<
property
name
="transactionAttributes"
>
10
<
props
>
11
<
prop
key
="save*"
>
12
PROPAGATION_REQUIRED,-OrderException
13
</
prop
>
14
</
props
>
15
</
property
>
16
</
bean
>
17
下面我们简单解释一下上面配置的意思:transactionManager属性引用一个事务管理器,在这里我们引用HibernateTransactionManager,target属性指定被代理的对象,transactionAttributes属性的save*表示在代理对象中所有以save开头的方法,PROPAGATION_REQUIRED表示代理对象中所有以save开头的方法都必须在事务中运行,-OrderException表示在执行以save开头的方法时,如果有OrderException异常抛出,则事务立即回滚。
完整的applicationContext.xml的配置如下:
1
<?
xml version="1.0" encoding="UTF-8"
?>
2
<!
DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"
>
3
4
<
beans
>
5
6
<
bean
id
="dataSource"
class
="org.springframework.jdbc.datasource.DriverManagerDataSource"
>
7
<
property
name
="driverClassName"
value
="com.mysql.jdbc.Driver"
/>
8
<
property
name
="url"
value
="jdbc:mysql://localhost/register"
/>
9
<
property
name
="username"
value
="root"
/>
10
<
property
name
="password"
value
="root"
/>
11
</
bean
>
12
13
<!--
Hibernate SessionFactory
-->
14
<
bean
id
="sessionFactory"
class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
>
15
<
property
name
="dataSource"
ref
="dataSource"
/>
16
<
property
name
="mappingDirectoryLocations"
>
17
<
value
>
classpath:test\register\entity\
</
value
>
18
</
property
>
19
<
property
name
="hibernateProperties"
>
20
<
props
>
21
<
prop
key
="hibernate.dialect"
>
org.hibernate.dialect.MySQLDialect
</
prop
>
22
<
prop
key
="hibernate.show_sql"
>
true
</
prop
>
23
<
prop
key
="hibernate.generate_statistics"
>
true
</
prop
>
24
</
props
>
25
</
property
>
26
</
bean
>
27
28
<
bean
id
="transactionManager"
class
="org.springframework.orm.hibernate3.HibernateTransactionManager"
>
29
<
property
name
="sessionFactory"
>
30
<
ref
local
="sessionFactory"
/>
31
</
property
>
32
</
bean
>
33
34
<
bean
id
="registerService"
class
="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
>
35
<
property
name
="transactionManager"
>
36
<
ref
local
="transactionManager"
/>
37
</
property
>
38
<
property
name
="target"
>
39
<
ref
local
=" registerTarget"
/>
40
</
property
>
41
<
property
name
="transactionAttributes"
>
42
<
props
>
43
<
prop
key
="save*"
>
PROPAGATION_REQUIRED,-OrderException
</
prop
>
44
</
props
>
45
</
property
>
46
</
bean
>
47
48
<
bean
id
="registerDAO"
class
="test.register.dao.RegisterDAO"
>
49
<
property
name
="sessionFactory"
ref
="sessionFactory"
/>
50
</
bean
>
51
52
<
bean
id
="registerTarget"
class
="test.register.service.RegisterService"
>
53
<
property
name
="registerDAO"
ref
="registerDAO"
/>
54
</
bean
>
55
56
</
beans
>
57
3.同时还要修改action-servlets.xml文件
1
<?
xml version="1.0" encoding="UTF-8"
?>
2
<!
DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"
>
3
<
beans
>
4
<
bean
name
="/register"
5
class
="test.register.action.RegisterAction"
>
6
<
property
name
="registerService"
ref
="registerTarget"
/>
7
</
bean
>
8
</
beans
>
9
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
相关文章:
nginx tomcat环境session不共享场景
Ngnix+Tomcat配置负载均衡
Ajax学习二
Ajax学习一
Struts,Spring,Hibernate Web应用开发4
Struts,Spring,Hibernate Web应用开发3
Struts,Spring,Hibernate Web应用开发2
Struts,Spring,Hibernate Web应用开发1
Powered by:
BlogJava
Copyright © 笑看人生