在一种方法上使用@Autowired或@PostConstruct有什么区别,因为它们提供了相同的结果(根据我从不同来源了解到的情况)。
更新:这里是我的类的一个例子,如果我使用@Autowired或@PostCosntruct来注释方法configClient(),得到相同的结果。
@Service
public class AwsSTSService {
@Autowired
private AwsConfiguration awsConfiguration;
public CustomCredentials getCredentials() {
......
return customCredentials;
}
@Autowired // or @PostConstruct
private void configClient() {
CustomCredentials customCredentials = getCredentials();
awsConfiguration.setAwsAccessKey(customCredentials.getAccessKeyId());
awsConfiguration.setAwsSecretKey(customCredentials.getSecretAccessKey());
awsConfiguration.setExpiration(customCredentials.getExpiration());
awsConfiguration.setSessionToken(customCredentials.getSessionToken());
}
}发布于 2022-09-01 14:20:51
实际上,他们没有任何共同点。@Autowired可以用于在bean (组件)中注入任何依赖项,另一方面,@PostConstruct可以用于bean的方法,spring引导将在创建bean之后调用该方法(例如填充数据库或计算一些初始数据)。
您可以看到本文如何在示例代码https://www.baeldung.com/spring-postconstruct-predestroy#postConstruct中使用这两个注释。
https://stackoverflow.com/questions/73570510
复制相似问题