我希望在我的一个 bean 中使用 @PostInitialize 注释在初始化完成后加载一些属性。有人可以告诉我在哪里可以找到此注释吗?我需要添加什么 Maven 依赖项才能获得此注释?为什么这不是 Spring 3.2.4 的一部分,或者我错过了一些我应该添加的 spring 包?
请指教
更新
我尝试使用 resthubs @PostInitialize 但它不起作用。我是否必须进行任何其他配置才能使此注释起作用。
我希望在我的一个 bean 中使用 @PostInitialize 注释在初始化完成后加载一些属性。有人可以告诉我在哪里可以找到此注释吗?我需要添加什么 Maven 依赖项才能获得此注释?为什么这不是 Spring 3.2.4 的一部分,或者我错过了一些我应该添加的 spring 包?
请指教
更新
我尝试使用 resthubs @PostInitialize 但它不起作用。我是否必须进行任何其他配置才能使此注释起作用。
我想你的意思是@PostConstruct
。
从 3.2.4参考 手册,
JSR-250 @PostConstruct 和 @PreDestroy 注释通常被认为是在现代 Spring 应用程序中接收生命周期回调的最佳实践。使用这些注解意味着你的 bean 没有耦合到 Spring 特定的接口。
您要求的是来自 Spring 改进请求https://jira.spring.io/browse/SPR-5966的补丁。
RestHub 有一个 @PostInitialize 注释。检查Resthub @GitHub或Resthub API。
<dependency>
<groupId>org.resthub</groupId>
<artifactId>resthub-common</artifactId>
<version>2.1.0</version>
</dependency>
@PostInitialize和@PostConstruct是不同的。
在大多数情况下,您可以使用@PostConstruct。
但!
@PostContruct它不是通过 spring 代理调用的,因此例如@Transactional不能与@PostConstruct一起使用。
由于这些情况,发明了@PostInitialize,它在上下文刷新后调用,它将通过代理调用,因此@Transactional将使用它。
Spring 默认没有@PostInitialize(因为惰性初始化 bean),但是你可以添加这个依赖,你会拥有它:
<dependency>
<groupId>fr.zebasto</groupId>
<artifactId>spring-postinitialize</artifactId>
<version>1.4.0</version>
</dependency>
在此处查找更多信息:https ://github.com/bcecchinato/spring-postinitialize