在具有@Configuration
注释的类中,其具有带@Bean
注释的方法,是否必须具有与bean同名的@Autowired
字段才能在同一个班级中使用它?由于配置类创建了bean,它是否应该通过直接调用方法立即访问它?
例如:
@Configuration
public class ConfigClass
{
@Autowired
private BeanForSomething beanForSomething;
@Bean
public BeanForSomething beanForSomething()
{
return new BeanForSomething();
}
private void methodThatUsesBean()
{
beanForSomething.doSomething();
}
}
是否可以省略@Autowired
字段并只调用beanForSomething().doSomething();
来使用bean?也许我误解了@Bean
注释的用法。
答案 0 :(得分:0)
不,@Bean
声明已经解决了这个问题。您只需在beanForSomething()
methodThatUsesBean()
即可
答案 1 :(得分:0)
正如之前的回答者所说,你可以使用
private void methodThatUsesBean()
{
beanForSomething().doSomething();
}
但是在另一个bean创建的情况下,您可以使用方法参数
@Bean
public BeanForSomething beanForSomething()
{
return new BeanForSomething();
}
@Bean
public SecondBean secondBean(BeanForSomething beanForSomething)
{
return new SecondBean(beanForSomething);
}