笑看人生
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.(11639)
2.?使用Redis實現session共享(4599)
3.?使用MyCat實現MySQL的分片處理和讀寫分離(3965)
4.?流程設計器開發一(模型部分)(3529)
5.?nginx tomcat環境session不共享場景(3283)
評論排行榜
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
笑看人生
閱讀(469)
評論(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 © 笑看人生
主站蜘蛛池模板:
亚洲欧洲日产韩国在线
|
全黄大全大色全免费大片
|
亚洲AV天天做在线观看
|
成年性午夜免费视频网站不卡
|
二区久久国产乱子伦免费精品
|
亚洲精品无码av片
|
中文字幕亚洲综合精品一区
|
国产亚洲精品免费视频播放
|
四虎影院永久免费观看
|
免费电视剧在线观看
|
在线亚洲精品自拍
|
国产国产成年年人免费看片
|
暖暖免费中文在线日本
|
亚洲 欧洲 视频 伦小说
|
亚洲欧洲春色校园另类小说
|
亚洲av永久无码精品表情包
|
国产成人精品曰本亚洲79ren
|
国产精品免费视频网站
|
国产精品二区三区免费播放心
|
黄色成人网站免费无码av
|
91久久成人免费
|
亚洲网站在线免费观看
|
99久久久国产精品免费牛牛
|
久久青草精品38国产免费
|
久久精品亚洲AV久久久无码
|
亚洲另类自拍丝袜第五页
|
亚洲人成电影在在线观看网色
|
性短视频在线观看免费不卡流畅
|
国产亚洲视频在线播放大全
|
亚洲国产AV一区二区三区四区
|
亚洲综合一区二区三区四区五区
|
亚洲人成网站在线观看青青
|
亚洲国产精品视频
|
国产精品亚洲综合专区片高清久久久
|
免费电影在线观看网站
|
毛片免费视频播放
|
午夜毛片不卡高清免费
|
日本久久久免费高清
|
少妇太爽了在线观看免费视频
|
日本在线免费播放
|
91香蕉国产线在线观看免费
|