我有一个java配置文件(带有@configuration注释的类)。它有一个带@Bean注释的方法,我想根据一些参数实例化这个bean。换句话说,我想通过名称获取bean(通过参数传递)并实例化此bean。
是否可以在@configuration类中执行此操作?
@Configuration
public class ApplicationConfig {
@Resource
private Config config;
@Bean
public Object application() throws ParseException {
return new SampleApp(/*get the bean by name*/);
}
}
config包含参数,我想使用这个参数并以该名称获取bean。
答案 0 :(得分:2)
这样的事情应该有效:
@Configuration
public class ApplicationConfig {
@Resource
private Config config;
@Autowired
private ApplicationContext appContext;
@Bean
public Object application() throws ParseException {
return new SampleApp(
(appContext.getBean("beanNameFromConfig"));
}
}