笑看人生
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 © 笑看人生
主站蜘蛛池模板:
国产免费一级高清淫曰本片
|
亚洲精品在线不卡
|
免费视频爱爱太爽了
|
国产成人精品免费视频动漫
|
国产乱子伦精品免费女
|
亚洲精品国产精品乱码不卡√
|
国产亚洲精品美女久久久久
|
免费不卡视频一卡二卡
|
亚洲午夜久久久久久尤物
|
成人免费激情视频
|
亚洲午夜在线播放
|
国产一区二区三区在线观看免费
|
亚洲精品午夜国产VA久久成人
|
亚洲国产成人va在线观看网址
|
一个人免费观看视频在线中文
|
国产成人高清精品免费鸭子
|
久久亚洲AV成人无码国产电影
|
桃子视频在线观看高清免费视频
|
四虎成人精品在永久免费
|
免费在线观看亚洲
|
亚洲熟女少妇一区二区
|
日韩精品无码专区免费播放
|
亚洲国产成人超福利久久精品
|
a级毛片免费高清毛片视频
|
亚洲黄色在线电影
|
午夜小视频免费观看
|
一级黄色免费网站
|
久久精品国产亚洲av日韩
|
中文字幕无码日韩专区免费
|
亚洲视频在线免费观看
|
日韩免费精品视频
|
18gay台湾男同亚洲男同
|
成人激情免费视频
|
亚洲小说图区综合在线
|
亚洲日本一区二区一本一道
|
亚洲国产区男人本色
|
亚洲中文字幕第一页在线
|
18禁免费无码无遮挡不卡网站
|
国产成人精品久久免费动漫
|
国产精品观看在线亚洲人成网
|
在线jyzzjyzz免费视频
|