为了账号安全,请及时绑定邮箱和手机立即绑定

JAVA开发jar lib包,Spring配置文件如何处理?

JAVA开发jar lib包,Spring配置文件如何处理?

烙印99 2018-10-29 04:09:07
项目开发一个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容器中。


查看完整回答
反对 回复 2018-11-03
?
慕莱坞森

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。

查看完整回答
反对 回复 2018-11-03
  • 2 回答
  • 0 关注
  • 737 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信