javascript
Spring 属性配置
此文已由作者堯飄海授權網易云社區發布。
歡迎訪問網易云社區,了解更多網易技術產品運營經驗。
隨著Spring的不斷發展與完善,早期它的功能可能只看做是IOC(反轉控制)的容器,或者其最大的亮點為DI(依賴注入),但是現在隨著Spring 2.5.6 的Release發布及3.0 版的推出及其他Spring工程的發布,如(Spring Batch,web Flow),其功能越來越多。
通過上下文統一管理各種資源,通過相關設計模式完成屬性的注入或實現方法,其次新的版本通過聲明注入使得配置文件的大大簡化,加上對其他的功能集成如Aop, Hibernate,Ibatis,JDBC,Toplink, Struts,Webwork,等等,使得和其他框架整合方便,Spring 里的設計方法也是以后需要學習的對象,總之通過此框架,使得開發人員把一些系統集成方面的工作簡化了。目前大部分用的還是手工編寫配置,框架人員可以通過編寫相關的模板自動實現Spring配置文件的生成。
XML文件里一般配置主要分為以下幾種:
?
1:屬性配置,如:
????<bean?id="propertyConfigurer"?class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property?name="locations"><list><value>WEB-INF/classes/mail.properties</value><value>WEB-INF/classes/jdbc.properties</value></list></property></bean>直接指出屬性文件地址,以后面的引用中就可以直接${key},方便修改。
?
2:數據源配置,如:
??<bean?id="dataSource"?class="org.apache.commons.dbcp.BasicDataSource"?destroy-method="close"><property?name="driverClassName"?value="${jdbc.driverClassName}"/><property?name="url"?value="${jdbc.url}"/><property?name="username"?value="${jdbc.username}"/><property?name="password"?value="${jdbc.password}"/></bean>配置數據的連接方式,也可直接配置成JNDI的方式。
?
3:事務管理,如:
<bean?id="transactionManager"?class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property?name="dataSource"?ref="dataSource"/></bean>對數據源進行事務管理。
?
4.持久層的配置,輕量級的有hibernate,ibatis等等,hibernate配置如下:
<bean?id="sessionFactory"?class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"?><property?name="dataSource"?ref="dataSource"?/><property?name="mappingResources"><list><value>com/netease/demo/bean/Food.hbm.xml</value><value>com/netease/demo/bean/User.hbm.xml</value><value>com/netease/demo/bean/Order.hbm.xml</value></list></property><property?name="hibernateProperties"><props> <prop?key="hibernate.dialect">${hibernate.dialect}</prop> <prop?key="hibernate.show_sql">${hibernate.show_sql}</prop><prop?key="hibernate.hbm2ddl.auto">update</prop></props></property><property?name="eventListeners"><map><entry?key="merge"> <bean?class="org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener"/></entry></map></property></bean>?
?
?5. AOP控制事務配置,即advisor和advice的設置,其中的切入點支持正則表達式的配置,設置如下:
??<aop:config><aop:advisor?pointcut="execution(*?com.netease.demo..dao.*(..))"?advice-ref="txAdvice"?order="0"?/></aop:config><tx:advice?id="txAdvice"?transaction-manager="transactionManager"><tx:attributes><tx:method?name="remove*"/><tx:method?name="store*"/><tx:method?name="*"?read-only="true"/></tx:attributes></tx:advice>?
? ? 6. 接下來的應該是系統的配置,如DAO,SERVICE等相關的配置,一般可以單獨文件導入即可,此處只是一個簡單的示例,我把二者合在一個文件,如:
???<bean?id="userService"?class="com.netease.demo.service.impl.UserServiceImpl"?autowire="byName"?/>? ? ?通過相關代碼,工程運行和工具對配置文件進行單元測試,如:JUNIT等,在此推薦unitils,只要簡單的在類上面加入聲明即可實現, 如:
? ? ? ? @SpringApplicationContext({"applicationContext.xml", " applicationContext-dao.xml"})
? ? ? ? ? 另外還可直接聲明spring配置的DAO或service,它會直接注入聲明的實現,如:
? ? ? ? @SpringBean("foodDao")
? ? ? ? ? ? ?private FoodDao foodDao;
? ? ? ? ?通過使用Spring再集成其他工具如JUNIT,TESTNG等,可以非常方便,快速的對依賴資源的使用進行測試用例進行開發和運行,明顯的提高測試效率。
??
?
?
參考文獻:
http://www.unitils.org/cookbook.html
http://www.springframework.org
http://www.unitils.org/
標簽:
服務端
免費體驗云安全(易盾)內容安全、驗證碼等服務
更多網易技術、產品、運營經驗分享請點擊。
相關文章:
【推薦】?流式處理框架storm淺析(上篇)
轉載于:https://www.cnblogs.com/163yun/p/9875971.html
總結
以上是生活随笔為你收集整理的Spring 属性配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: create-react-app 构建的
- 下一篇: pixhawk入门