项目开发一个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 关注
- 731 浏览
添加回答
举报
0/150
提交
取消