如何解决当我拥有 All Args 构造函数时,我应该永远不要在 Spring Boot 中使用 @PostConstruct 吗?
在out项目中,我们不使用setter或filed注入,我们只使用构造函数注入,我知道选项1.和2.都可以。
或者spring boot 2+做了一些东西,我应该更好地使用选项1。而不是2。我无法想象选项1会出错的情况
@Component
@ConfigurationProperties("config")
public class ServiceConfigProperties {
// .... some code
}
- 会不安全吗? - 但它看起来更好
@Component
public class Service {
private boolean skipCheck;
public Service(ServiceConfigProperties configProps) {
this.skipCheck = configProps.isSkipCheck();
}
}
- 不能不安全吗?
@Component
public class Service {
private boolean skipCheck;
private ServiceConfigProperties configProps;
public Service(ServiceConfigProperties configProps) {
this.configProps= configProps;
}
@postconstruct
public void initConfig() {
this.skipCheck= configProps.isSkipCheck();
}
}
解决方法
使用 a couple of caveats,在构造函数中与构造函数注入的 bean 交互是完全安全的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。