1 Struts+Spring
主要就是讓Struts知道Spring的存在,我們可以采用兩種辦法。
(1) 運用Struts的插件方法,添加struts-congif.xml的<plug-in>節點。
示例代碼如下:

2

3

上段代碼意圖很簡單:把Struts的配置文件和Spring的配置文件聯系起來,這樣Struts就知道了Spring的存在。
另外,在web.xml里面需要配置一個Spring的監聽器,示例代碼如下:

2

3

第一種方法完畢。
(2) 直接在web.xml里面進行加載。
這種方法與上種方法的不同之處在于Spring的配置文件加載的位置不同,上種方法是在struts-cong.xml中聲明,而這種方法是在web.xml里面進行聲明,示例代碼如下:

2

3

4

5

6

7

這樣我們就實現了第二種方法的SS整合。
問題至于我們還要遇到一個小問題,那就是Struts如何實用Spring的特性?Struts怎么就知道Spring注入的Bean呢?當然,這需要我們進行編程式的聲明,眾所周知,在Strus的Action里面有一個setServlet方法,我們此時就需要覆蓋這個方法,當ActionServlet把請求轉發到此Action時,Action就可以實用Spring的特性。
示例代碼如下:

2

3

4

5

6

7

8

9

10

11

12


2

3

到此OK,Struts與Spring的整合成功。
2 Spring+Hibernate
可以說Spring與Hibernate的整合是非常完善的,具體要素如下:
在Hibernate中,最重要的無非就是兩點,一是配置數據庫連接池,二是配置實體類的映射文件。現在我貼出上述兩點在Spring里面是怎么配的,配置完畢以后,我們完全可以刪除hibernate.cfg.xml文件。示例代碼如下:

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

OK,到此就完成了Spring+Hibernate的整合
主要功能:完成數據庫表的查、增、刪、改操作。
問題描述:查詢功能一切正常,但是在增、刪、改操作中發現,數據庫表中數據沒有改變,查看控制臺日志也沒有任何異常發現,納悶了好久,仔查檢查日志,發現在新增操作中表id有在自增,由此確定是問題出在事務沒有提交。將事務配置上去后出現如下報錯:java.lang.ClassCastException: $Proxy1,百度上搜到一文,在業務類如果實現了接口,得增加如下代碼
<property name="proxyTargetClass">
<value>true</value>
</property>
果然如此,再次運行,成功了!
以下是我applicationContext.xml的內容:

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
