笑看人生
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.(11641)
2.?使用Redis實現session共享(4600)
3.?使用MyCat實現MySQL的分片處理和讀寫分離(3966)
4.?流程設計器開發一(模型部分)(3531)
5.?nginx tomcat環境session不共享場景(3285)
評論排行榜
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
笑看人生
閱讀(470)
評論(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新聞
Chat2DB
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 © 笑看人生
主站蜘蛛池模板:
日韩在线播放全免费
|
A片在线免费观看
|
国产男女性潮高清免费网站
|
亚洲精品第五页中文字幕
|
4399影视免费观看高清直播
|
久久亚洲精品成人无码网站
|
3344永久在线观看视频免费首页
|
亚洲综合免费视频
|
欧美好看的免费电影在线观看
|
亚洲精品123区在线观看
|
在线免费观看一级毛片
|
蜜桃传媒一区二区亚洲AV
|
国产精品免费_区二区三区观看
|
国产精品亚洲综合
|
亚洲七七久久精品中文国产
|
中文字幕乱理片免费完整的
|
亚洲人成在线影院
|
久久久久国色AV免费看图片
|
久久久久亚洲精品无码网址色欲
|
国产美女在线精品免费观看
|
亚洲免费综合色在线视频
|
免费一级毛片免费播放
|
中文字幕av免费专区
|
亚洲国产精品成人精品软件
|
日韩一区二区免费视频
|
成人妇女免费播放久久久
|
亚洲成人福利在线
|
在线免费观看中文字幕
|
中文字幕免费观看全部电影
|
亚洲综合久久1区2区3区
|
国产成人高清精品免费软件
|
a视频免费在线观看
|
亚洲国产模特在线播放
|
亚洲?V乱码久久精品蜜桃
|
免费91最新地址永久入口
|
日韩免费人妻AV无码专区蜜桃
|
国产亚洲精品影视在线产品
|
19禁啪啪无遮挡免费网站
|
激情吃奶吻胸免费视频xxxx
|
久久青草亚洲AV无码麻豆
|
午夜寂寞在线一级观看免费
|