首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

spring中动态加载bean的容易实现

2012-09-11 
spring中动态加载bean的简单实现场景应用于运行过程中动态加载bean,比如数据源的动态加载、定时任务的动态

spring中动态加载bean的简单实现
场景

应用于运行过程中动态加载bean,比如数据源的动态加载、定时任务的动态加载等。

环境spring3.0.5代码

DynamicBeanReader ? ? ? ? ? bean动态加载接口.

DynamicBeanReaderImpl ? ?bean动态加载实现类.

DynamicResource ? ? ? ? ? ? ? ?org.springframework.core.io.Resource的实现类.

DynamicBean ? ? ? ? ? ? ? ? ? ? ?动态bean描述对象的抽象类.

DataSourceDynamicBean ? ?继承自DynamicBean,一个数据源的简单bean配置描述对象.

?

?

spring配置

?

?

?

?

动态加载bean接口

?

?

?

?

?

/** *junit测试类 */@ContextConfiguration(locations={"classpath:applicationContext-test.xml"})public class DynamicBeanReaderTests extends AbstractJUnit4SpringContextTests{@Autowiredprivate DynamicBeanReader dynamicBeanReader;      @Test    public void testLoadBean(){    DataSourceDynamicBean dataSourceDynamicBean = new DataSourceDynamicBean("dataSource1");    dataSourceDynamicBean.setDriverClassName("org.gjt.mm.mysql.Driver");    dataSourceDynamicBean.setUrl("jdbc:mysql://127.0.0.1:3306/youi2?useUnicode=true&characterEncoding=utf-8");    dataSourceDynamicBean.setUsername("youi2");    dataSourceDynamicBean.setPassword("youi2");        dynamicBeanReader.loadBean(dataSourceDynamicBean);//        DataSource s = (DataSource)applicationContext.getBean("dataSource1");    try {PreparedStatement ps = s.getConnection().prepareStatement("select '数据库输出的数据' a from dual");ps.execute();ResultSet rs = ps.getResultSet();while(rs.next()){System.out.println(rs.getString("a"));}} catch (SQLException e) {//TODO }    }}

执行测试的输出:

?20110310 23:12:44 INFO DynamicBeanReaderImpl.loadBean(60) | 初始化bean【dataSource1】耗时78毫秒。

数据库输出的数据

?

1 楼 yheye 2011-04-09   LZ,请问怎么把jar包动态加入进去呢? 2 楼 hustlxjaw 2011-04-25   有个工具叫jRebel,可以热加载,对spring支持的也挺好

热点排行