gpt4 book ai didi

java - 如何以编程方式按名称 getBean()

转载 作者:行者123 更新时间:2023-11-30 04:44:30 25 4
gpt4 key购买 nike

我使用的是Spring3.1

我已经以编程方式注册了一个 Bean,我也想以编程方式检索它,但没有成功。

public void createBean(String beanName, String beanParam) {
System.out.println("beanName=" + beanName + " beanParam=" + beanParam);
ApplicationContext context = ApplicationContextSingleton.getApplicationContext();
StaticApplicationContext innerContext;= new StaticApplicationContext(context);
innerContext.registerSingleton("beanName", FixSessionBean.class);
configureBean(innerContext, beanName, beanParam);
}

public void configureBean(ApplicationContext innerContext, String beanName, String beanParam) {
innerContext.getBean(beanName);
FixSessionBean fixSessionBean = (FixSessionBean) innerContext.getBean(beanName);
}

来 self 的 applicationContext:

<bean id="FixSessionBean" class="com.finbird.fixgw.beans.FixSessionBean" />

这是一些日志证据:

beanName=mm1 beanParam=mm2
2012-07-09 13:07:31,016 com.fixgw.test.TriggerBean [ERROR] org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'mm1' is defined
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'mm1' is defined

知道为什么进展不顺利吗?

谢谢。

最佳答案

这不是一行吗

innerContext.registerSingleton("beanName", FixSessionBean.class);

使用名称“beanName”注册您的 bean,而不是使用 beanName 参数的值?也许您打算改用该参数。

关于java - 如何以编程方式按名称 getBean(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11392948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com