手動向Spring容器(BeanFactory)中注冊Bean

早期用XML配置Bean,后來用@Bean或@Component注解來注冊Bean。但有時動態(tài)創(chuàng)建的對象,并不方便用注解來實現(xiàn)。

可以用下面的方法手動注冊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語法糖。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容