Spring只能注册构造函数bean吗?

时间:2015-03-30 21:21:52

标签: java spring autowired

如果我们说我有一个班级A(@Component)和一个班级B(@Component)。类A需要B的实例。如果我使用@Autowired将类B作为字段放在A中,即使Spring会找到B组件(通过@ComponentScan),类A字段也将为null。但是,如果我将B作为参数放在A的构造函数中并使用@Autowired注释构造函数,它将完美地运行。

有没有办法从B的构造函数中排除A

1 个答案:

答案 0 :(得分:1)

正如@LuiggiMendoza所提到的:创建一个@PostConstruct方法很简单:你应该只用@PostConstruct注释你的方法:

public class A {
    @PostConstruct
    void init(){
        //do smth here
    }
}

或者,如果使用XML配置,则可以将init-method参数添加到bean定义中。