繁体   English   中英

@Configuration类中是否有必要自动装配@Bean以供该类使用?

[英]Is it necessary in a @Configuration class to autowire an @Bean for use in that class?

在带有@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声明已经解决了这一问题。 您只需要在beanForSomething()中调用beanForSomething() methodThatUsesBean()

如先前的回答者所说,您可以使用

private void methodThatUsesBean()
{
    beanForSomething().doSomething();
}

但是,如果要创建另一个bean,则可以使用method参数

@Bean
public BeanForSomething beanForSomething()
{
    return new BeanForSomething();
}

@Bean
public SecondBean secondBean(BeanForSomething beanForSomething)
{
     return new SecondBean(beanForSomething);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM