spring_2
1:
控制反轉(zhuǎn):
控制反轉(zhuǎn)就是 應(yīng)用本身不負責(zé)以來對象的創(chuàng)建及維護,以來對象的創(chuàng)建及維護是由外部容器負責(zé)的.這樣控制權(quán)就由應(yīng)用轉(zhuǎn)移到了外部容器,控制權(quán)的轉(zhuǎn)移就是所謂反轉(zhuǎn).
2:
依賴注入:
使用構(gòu)造函數(shù) 或 setter 方法
3:
事務(wù)是局限在數(shù)據(jù)庫連接之內(nèi)的,所以使用兩個連接的方法是不能使用同一個事務(wù)的.
解決辦法:
Connection conn = null;
conn.setAutoCommit(false);
Bean1.update(); // 更新金額
Bean2.save(); // 記錄操作日志
// 提交事務(wù)
4:
如果不論更新金額是否成功,都需要記錄日志,則需要使兩個方法分別使用不同的事務(wù).
5:
Spring 聲名式事務(wù)
保證兩個方法在同一個事務(wù)中執(zhí)行,在方法的前面加上:
@Transactional(propagation=Propagation.Required)
使方法在新的事務(wù)中執(zhí)行:
@Transactional(propagation=Propagation.RequiredNew)
6:
Spring 給我們帶來的好處:
(1): 降低組件之間的耦合度,實現(xiàn)軟件各層之間的解耦
(2): 可以使用容器提供的眾多服務(wù),如:事務(wù)管理服務(wù),消息服務(wù)等等.
當(dāng)我們使用容器管理事務(wù)時,開發(fā)人員就不需要手工控制事務(wù),也不需要處理復(fù)雜的事務(wù)傳播.
(3): 容器提供單利模式支持,開發(fā)人員不在需要自己編寫實現(xiàn)代碼.
(4): 容器提供眾多的輔助類,使這些類能夠加快應(yīng)用的開發(fā):如 JdbcTemplate,HibernateTemplate
(5): Spring對于主流的應(yīng)用框架提供了集成支持,如:集成Hibernate,JPA,Struts等,這樣更便于應(yīng)用的開發(fā).
7:
使用Spring 提供的服務(wù)很少,應(yīng)用屬于輕量級
使用Spring 提供的服務(wù)很多,應(yīng)用屬于重量級
EJB 容器默認為應(yīng)用提供了EJB規(guī)范中的所有的功能,所以它屬于重量級的
EJB 的服務(wù)包括: 安全服務(wù), jndi服務(wù),
posted on 2011-01-05 20:54 calmJava 閱讀(183) 評論(0) 編輯 收藏 所屬分類: Spring