web.xml中需要配置Spring的ContextLoaderSupport和struts2的Servlet篩檢程式StrutsPrepareAndExcuteFilter。
所有的DAO類需要繼承HibernateDaoSupport,並採用HibernateTemplate方式操作資料庫。
Spring設定檔中需要配置LocalSessionFactoryBean類, LocalSessionFactoryBean負責Hibernate的Session管理, 所有的hibernateDaoSupport類都需要注入LocalSessionFactoryBean。
Spring設定檔中配置聲明式事務。
Spring設定檔中, 除了原本就需要配置的業務類/DAO等Bean以外, 還需要配置Struts2的每個Action的Bean,並指明scope為prototype.
Struts2的設定檔中, 需要配置每個Action,並且其class屬性值不再是完整的類名, 而應該是Spring設定檔中的Bean的id.
三大框架優化建議Struts2:
1, 發佈時需要關閉開發模式(DevMode)
2, 不使用用不到的攔截器, 攔截器等各種元件越多, 性能越低, 奔著一個達到目標使用最少的原則, 進行相關開發。
3, 篩檢程式的過濾規則儘量不要使用/*, 這裡我們開發可以制定規則, 將篩檢程式的過濾範圍降低到最小, 方便框架的快速過濾!
Spring:
1,儘量不要採用自動裝配, 使用手動裝配指明方向, 框架能夠更快的尋找到相關的類。
2, 儘量使用延遲載入功能, 這樣可以減少和資料庫的通信, 提高性能。
Hibernate:
1,所有框架使用較新的版本, 可以提供更好的性能支援, 畢竟什麼東西都是向著更好的方向發展。 但是也不要一味的追求最新, 如果有bug或什麼情況還是不好的, 奔著一個在有把握的基礎上尋求最新的原則。
2, 使用合理的緩存策略, 主要是二級緩存和查詢緩存的選擇使用, 根據實際情況, 合理使用。
3, 儘量使用延遲載入功能。
4, 推薦使用uuid的主鍵生成策略,
5, 推薦使用樂觀鎖代替悲觀鎖。