spring bean重新加载问题解决
来源:互联网 发布:黑暗之魂3捏脸数据 编辑:程序博客网 时间:2024/06/05 06:10
背景:
1、tomcat工程启动比较慢,会导致很长的一段时间无法对外提供服务。
2、服务器数量比较多,更新一次运维会花比较长的时间。
描述:
对系统框架进行调整,把会频繁更新的功能,做成spring jar包,放在web站点,然后tomcat上部署的系统自动向web站点请求最新的spring jar包。
注意:考虑到系统的性能,这里没有用mbean实现。
实现关键代码:
1、jar包解析
myClassLoader = new URLClassLoader(new URL[] {url},context.getClassLoader() );
Thread.currentThread().setContextClassLoader(myClassLoader);
2、使用新jar包
DefaultListableBeanFactory defaultListableBeanFactory = (DefaultListableBeanFactory)context.getAutowireCapableBeanFactory();
defaultListableBeanFactory.setBeanClassLoader(myClassLoader);
3、bean加载初始化
SimpleBeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry();
XmlBeanDefinitionReaderreader =new XmlBeanDefinitionReader((BeanDefinitionRegistry)registry);
reader.loadBeanDefinitions(r);
4、bean更新
String [] beanNames = registry.getBeanDefinitionNames();
for ( String n : beanNames) {
defaultListableBeanFactory.registerBeanDefinition(n,registry.getBeanDefinition(n));
}
- spring bean重新加载问题解决
- Spring 重新加载数据源
- Spring-搞定bean加载
- spring bean 加载顺序
- spring bean 加载顺序
- spring延迟加载bean
- spring bean 加载顺序
- Spring 加载bean
- spring加载bean原理。
- spring动态加载Bean
- spring bean的加载
- spring bean 加载顺序
- Spring Bean 加载顺序
- spring加载bean
- Spring加载Bean
- spring bean加载过程
- spring Bean加载
- spring的bean加载
- 甲骨文销售云-报表开发·神鬼抓bug
- NTP服务及时间同步(CentOS6.x)
- 设置dt的float属性使dt和dd在同一行内
- CUDA数组学习
- 如何获取spring中存放的各个bean及设置某个bean的自动启动方法
- spring bean重新加载问题解决
- Enterprise Architect
- Spring mvc中数据绑定和格式化
- 深入浅出之JVM 内存编
- 移动机器人定位与地图创建(SLAM)方法
- 正则表达式
- Linux基础之文件权限LLinux
- 慎用case
- J2SE(十六)Java之I/O