Spring引导中构造函数调用的顺序



我有一个用@Service注释的类ServiceClass,在里面我为对象进行构造函数注入。

@Service
public class ServiceClass
{
Dog dog;
@Autowired
public ServiceClass(Dog dog) {
this.dog = dog;
}
}

现在,我还需要添加一些配置代码,这些代码应该只运行一次,并且在ServiceClass中的任何其他方法调用之前运行。

我曾想过创建一个无arg构造函数,并将这些配置放入其中,但spring没有调用该构造函数。

我应该把它放在构造函数中进行注入吗?或者有其他方法可以实现它吗?

在这种情况下,有两个合适的选项可供选择,而无需在构造函数中实现初始化逻辑。

第一个是@PostConstruct,您可以在其中定义配置逻辑。另一种选择是让ServiceClass实现InitializingBean接口,并将此配置逻辑放在afterPropertiesSet方法中。