第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在 Spring Boot 中動(dòng)態(tài)注冊(cè) bean?

如何在 Spring Boot 中動(dòng)態(tài)注冊(cè) bean?

LEATH 2023-04-13 14:53:33
我希望在運(yùn)行時(shí)覆蓋 Spring 的 SSLContext。因此,我試圖找到將以下方法動(dòng)態(tài)注冊(cè)為 bean 的方法。對(duì)于前。調(diào)用 GetMapping 端點(diǎn)時(shí),應(yīng)將以下方法作為 bean 注入到 Spring IoC 中。public static SSLContext getSSLContext() throws Exception {    TrustManager[] trustManagers = new TrustManager[] {            new ReloadableX509TrustManager(truststoreNewPath)    };    SSLContext sslContext = SSLContext.getInstance("SSL");    sslContext.init(null, trustManagers, null);    return sslContext;}我怎樣才能做到這一點(diǎn)?
查看完整描述

3 回答

?
手掌心

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊

Spring 5提供了Bean注冊(cè),可以動(dòng)態(tài)完成。

Supplier<SSLContext>?sslcontextSupplier?=?()?->?getSSLContext();
context.registerBean("sslcontext",SSLContext.class,sslcontextSupplier);


查看完整回答
反對(duì) 回復(fù) 2023-04-13
?
SMILET

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以使用 ConfigurableBeanFactory 在運(yùn)行時(shí)手動(dòng)注冊(cè) bean。


@Service

public class RegisterBeansDynamically implements BeanFactoryAware {


? ? private ConfigurableBeanFactory beanFactory;


? ? public <T> void registerBean(String beanName, T bean) {

? ? ? ? beanFactory.registerSingleton(beanName, bean);

? ? }


? ? @Override

? ? public void setBeanFactory(BeanFactory beanFactory) throws BeansException {

? ? ? ? this.beanFactory = (ConfigurableBeanFactory) beanFactory;

? ? }

}

但請(qǐng)記?。罕仨毸⑿履纳舷挛?,使其他 bean 能夠自動(dòng)注入您的新 bean,否則它們必須從應(yīng)用程序上下文動(dòng)態(tài)訪問(wèn)它們。



查看完整回答
反對(duì) 回復(fù) 2023-04-13
?
開心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊

這是演示。


public class Demo implements ApplicationContextAware {


    private ApplicationContext applicationContext;


    @Override

    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {

        this.applicationContext = applicationContext;

        ConfigurableApplicationContext context = (ConfigurableApplicationContext)applicationContext;

        DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory)context.getBeanFactory();


        BeanDefinitionBuilder beanDefinitionBuilder = BeanDefinitionBuilder.rootBeanDefinition(YourClass.class);


        beanDefinitionBuilder.addPropertyValue("property1", "propertyValue");

        beanDefinitionBuilder.addPropertyValue("property2", applicationContext.getBean(AnotherClass.class));



        beanFactory.registerBeanDefinition("yourBeanName", beanDefinitionBuilder.getBeanDefinition());



    }

}

您可以將寄存器部分移動(dòng)到您的方法中(從 開始BeanDefinitionBuilder)。我想這會(huì)滿足你的需求。


查看完整回答
反對(duì) 回復(fù) 2023-04-13
  • 3 回答
  • 0 關(guān)注
  • 237 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)