4
回答
spring如何实现在java代码中动态加载xml

要实现的功能就和spring xml中使用<import resource=""/>标签一样.不同的地方就是我想要在代码运行的过程中按需求来动态的决定是否引入一个xml文件.

new ClassPathXmlApplicationContext 我使用这个方法试了一下.在运行到这个地方的时候确实是加载了xml.但是到了其它类的时候该xml里面的bean却是null.

麻烦有知道怎么做的大神帮忙下

举报
竹竿先生
发帖于10个月前 4回/170阅

你没描述清楚...ClassPathXmlApplicationContext 是加载spring上下文, 你执行一遍相当于 你重新加载了一遍spring的上下文

--- 共有 1 条评论 ---
竹竿先生正常不是在web.xml中使用classLoader之类的加载spring的xml吗.然后我的业务是想在程序中判断用户有没有正确配置activemq的ip和端口.然后再决定是否加载mq的xml.来使用mq. 10个月前 回复

你可以将配置的activemq的ip和端口 都保存进数据库,做一个维护界面就行了 然后从库里面读配置 去加载, 如果是改配置文件动态加载配置文件的话 要从容器上想办法

--- 共有 1 条评论 ---
竹竿先生我现在的状况是.其它类里面我也使用new ClassPathXmlApplicationContext这种方式去获得bean.原先的使用spring的@Autowired就不能用了. 功能上已经是能够使用了.就是不知道会不会有问题.然后感觉这样写代码有点冗余 10个月前 回复

mq的模块不要直接使用mq的类,写一个业务类代理mq的API调用,就是是否配置了IP都加载你定义的这个代理类,只是代理类在执行相关的业务方法的时候会根据是否配置了mq而执行mq还是提示未配置;使用切面也可以实现

spring容器初始化只有一次,不存在动态加载的问题。如果启动时动态变化,你可以考虑基于java的配置,看@Configuration注解
顶部