我有一个带有最终字段的bean。
public class Foo {
Service service;
final String bar;
public Foo(String bar){};
}
service
不是最终版,并且有一个二传手。 bar
是最终的,可以有很多值。我无法删除final
关键字。我尝试创建一个弹簧工厂,允许使用注入的服务和动态条形值创建Foo的实例。 factory.create(bar)
。 Foo
bean在运行时被实例化,因为bar
值未知并且无限制
我试过了:
@Configuration
,但配置不允许参数不受spring或dynamic参数管理。 有什么想法吗?
谢谢!
答案 0 :(得分:4)
查看ApplicationContext.getBean(String name, Object... args)
方法。您可以使用args
参数将参数传递给bean创建。
答案 1 :(得分:0)
您可以在Application Context XML中使用构造函数注入作为执行此操作的一种方法:
<bean name="foo" class="com.example.Foo">
<constructor-arg index="0">Bar</constructor-arg>
</bean>
编辑:错过了,请查看此问题:How to use @Autowired in spring
第二个答案(不是我)
看起来您可以在此处使用@Configurable
注释。