读书人

器皿运行时spring动态加载代理类

发布时间: 2012-11-04 10:42:42 作者: rapoo

容器运行时spring动态加载代理类

目前项目需要在tomcat运行的时候加载新业务处理的功能,实现的思路如下:

1 tomcat可以支持动态加载,只要把新的class问价考入到相应工程的class文件夹下就能使用

2 由于业务使用的都是spring,所以需要spring能够在与运行的时候加载新的类:经过一系列的研究,找到了方法:

需要往BeanFactory加入一个新的bean的定义,方法如下:

//1 get BeanFactory

DefaultListableBeanFactory factory =(DefaultListableBeanFactory)?WebApplicationContextUtils.getWebApplicationContext(servletContext).getAutowireCapableBeanFactory();

//2 create Bean Definition

AbstractBeanDefinition beanDef = BeanDefinitionReaderUtils.createBeanDefinition(null, businessPara.getBusinessClass(),? WebApplicationContextUtils.getWebApplicationContext(servletContext).getClassLoader());

//3 add Bean Definition to BeanFactory
factory.registerBeanDefinition(businessPara.getServiceName(), beanDef);

读书人网 >软件架构设计

热点推荐