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 閱讀(376) 評論(0)  編輯  收藏 所屬分類: springside
          主站蜘蛛池模板: 丰宁| 塘沽区| 仙桃市| 鱼台县| 武安市| 孝义市| 佛坪县| 乡宁县| 宝丰县| 如东县| 平顶山市| 叶城县| 无为县| 蒙阴县| 镇巴县| 明星| 平山县| 齐齐哈尔市| 临汾市| 望都县| 徐汇区| 蚌埠市| 观塘区| 隆子县| 高青县| 翁牛特旗| 新竹县| 易门县| 瑞金市| 临夏县| 黑河市| 托里县| 邵武市| 宜兰市| 邛崃市| 达日县| 金湖县| 姜堰市| 南郑县| 子长县| 玛多县|