項目開發一個Jar lib依賴包,其中使用了spring容器技術,就有application.xml bean配置文件。問題是如果其它工程
引用這個jar包,而這個主工程也用了spring容器,也有xml bean配置文件。這種如何處理?
一般開發jar lib包時,用spring容器技術是如何設計給上層應用使用?
2 回答

慕田峪7331174
TA貢獻1828條經驗 獲得超13個贊
第一個問題,你可以通過配置ContextLoaderListener的監聽文件路徑,將兩個項目的xml都注冊到一個spring容器中,例如在web.xml中配置:
<!-- spring配置文件路徑 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value> <!--加入Spring配置文件--> classpath:config/applicationContext.xml <!-- /WEB-INF/classes/applicationContext.xml,/WEB-INF/classes/spring-srevlet.xml --> </param-value> </context-param> <!-- Spring監聽器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
第二個問題,原則上開發第三方時,不應該直接使用spring容器(但可以依賴spring的jar),而是提供spring集成支持,容器一般在運行時才集成。這個東西我也不好用語言表達,舉個簡單例子,比如jedis是不依賴任何spring功能,但是spring-data-redis就能將jedis無縫集成到spring容器中。

慕萊塢森
TA貢獻1810條經驗 獲得超4個贊
1) 利用了Spring ApplicationContext 的 registerBeanDefinition方法和動態bean注冊技術;
2) 作為bean管理的一個規范:要求Service類實現 setDAO(DAO dao)方法,以便統一注入dao實例;
3) 作為bean管理的一個規范:調用 dao.setDatasource(datasource)方法進行數據源注入;
4) 作為bean管理的一個規范:內部使用className作為 service bean 和dao bean的內部id;
5) 作為bean管理的一個規范:ServiceFactory內獲取bean實例時,都采用prototype scope。
- 2 回答
- 0 關注
- 791 瀏覽
添加回答
舉報
0/150
提交
取消