如果我在两个地方自动布线,它会构造两次吗?

时间:2018-10-12 23:08:17

标签: spring spring-boot

在春季,我有一个@Service bean对其进行初始化:

@PostConstruct
private void init() throws Exception {
    ...
}

如果然后我使用@Autowired在两个不同的类中使用上述bean,则'init'将执行两次还是仅执行一次?我希望它只能执行一次,因为我的Bean初始化工作很繁琐。

此外,使用@PostConstruct初始化bean总是好吗?到目前为止,我一直在这样做。

1 个答案:

答案 0 :(得分:1)

这取决于您的bean是作用域原型还是单例。

请参见bean scopes

您应该考虑尽可能使用构造函数。为了使所有内容更易于测试并降低复杂性。