美文网首页java
手动向Spring容器(BeanFactory)中注册Bean

手动向Spring容器(BeanFactory)中注册Bean

作者: 木巽 | 来源:发表于2023-06-12 09:58 被阅读0次

早期用XML配置Bean,后来用@Bean或@Component注解来注册Bean。但有时动态创建的对象,并不方便用注解来实现。

可以用下面的方法手动注册Bean:

    public static void registerDataSource(Object dataSource, String beanName) {
        var beanFactory = (DefaultListableBeanFactory) SpringUtil.getApplicationContext().getAutowireCapableBeanFactory();
        beanFactory.registerSingleton(beanName, dataSource);
    }

对应的销毁Bean的方法:

    public static void destroyDataSource(String dsId) {
        var beanFactory = SpringUtil.getApplicationContext().getAutowireCapableBeanFactory();
        var ds = getDataSource(dsId);
        beanFactory.destroyBean(ds); //或者用DefaultListableBeanFactory.destroySingleton的方法
    }

上面的代码基于java17,使用了var语法糖。

相关文章

网友评论

    本文标题:手动向Spring容器(BeanFactory)中注册Bean

    本文链接:https://www.haomeiwen.com/subject/cxzfydtx.html