1. 參考資料

          2. 選型

          ??? 有人說guice好,但我們用Spring不僅是為了IOC,也為了Spring對JEE所做的封裝,以及整個JavaEE界眾多項目(SpringSecurity,CXF、Struts2等)對它的依賴。???

          3. in SpringSide 3 - Mini示例使用的基本特性

          • 屬性配置及IOC容器
          • @Transcational annotation標注的事務管理功能
          • 集成測試的基類

          3.1 IOC部分特征使用

          ?? 詳見Spring 筆記(江南白衣博物館)

          ? 3.1.1 零配置文件的使用場合
          ? ?? Service,Dao 層在無特殊配置項時,可使用IOC Annotation進行配置 實現約定俗成大于配置的零配置文件.

          ???? 而其他Database/SessionFactory ,SpringSecurity, CXF等需要進行參數配置時,仍然使用 XML 配置文件。

          ? 3.1.2? 零配置文件的annotation

          ???? SpringSide3中使用@Component注釋所有類別,在setter方法(不需要嚴格按setter命名)上 使用@Autowired 進行byType注入,如果需要byName注入則使用@Resource。

          ? 3.1.3 其他特征

          ?? 使用@Required注釋沒有用@Autowired注釋的屬性,保證對象必然被注入,如果對象沒有被注入則報錯。

          ?? 使用JSR250的@PostConstruct來定義在執行完所有setter注入后必須執行的函數。@PreDestroy來定義JDK關閉時通過shutdownhook調用的函數。

          ?? ApplcationContext中默認設置Lazyload 與Autowired by type 仍然是必然的選擇。

          ? 3.1.4 屬性文件管理

          ????? 在配置文件中,很有一些屬性會在團隊的開發環境,個人的開發環境,集成測試環境,以及生產環境集群的每臺服務器中都有所不同的。詳見Spring 筆記(江南白衣博物館)

          ?3.2 事務管理 ? ?

          ? ?? 在Service層用@Transactional 定義事務,詳見Spring 筆記(江南白衣博物館)。 注意Spring3.0 的@Transactional終于支持多個TransactionManager了, showcase里演示了多個數據源(不要求聯合事務JTA)導致多個TransactionManager的情況。此時@Transactional默認使用<tx>中指定的TransactionManager, 但也可以重新指定,如@Transactional("transactionManager"). 但這種HardCode的transactonMananger名稱還是越少越好了,如果第2個數據源其實是只讀的,那就不要給它配置事務。

          ? ?? 在AOP不到的地方,仍然有機會使用TransactionTemplate,(見Showcase的UserJdbcDao 與 LogJdbcWriter。)

          3.3 集成測試的基類

          ? ?? 詳見 測試文檔

          4. in SpringSide3

          4.1 Showcase中使用的Spring功能索引

          • JMX:JMX的Server端封裝
          • JMS:JMS Template封裝
          • Email:EMail客戶端封裝
          • Schedule:Quartz的封裝,ScheduleExecutor的封裝
          • Ehcache:Ehcache Server封裝
          • Jdbc:Spring JdbcTemplate

          4.2 SpringContextHolder

          ?? 在Spring ApplicationContext啟動時,先把Context放入個該類的靜態變量,當模塊的代碼無法通過正常渠道獲得Spring Context及其中的Bean時,可直接從該靜態變量中獲取。

          4.3 AOP Aspect的寫法

          ?? 最新的寫法,一切都寫在java文件里,只要在applicationContext.xml里面定義一把scan就可以了。

          ?? <aop:aspectj-autoproxy proxy-target-class="true" />

          ?? 詳見showcase中的TraceLogAspect。

          posted on 2010-12-21 17:10 hello 閱讀(373) 評論(0)  編輯  收藏 所屬分類: springside
          主站蜘蛛池模板: 罗江县| 称多县| 麻江县| 阜康市| 雷山县| 东丰县| 扎兰屯市| 西宁市| 庆云县| 普格县| 隆林| 铁岭县| 寻乌县| 德兴市| 孝感市| 岳池县| 茌平县| 咸宁市| 云梦县| 奉化市| 乌苏市| 巴里| 苗栗市| 五常市| 潼关县| 临颍县| 乌拉特中旗| 平山县| 富平县| 包头市| 武定县| 上虞市| 通渭县| 永康市| 益阳市| 民勤县| 绥芬河市| 红河县| 万源市| 田东县| 纳雍县|