0

我希望在我的一个 bean 中使用 @PostInitialize 注释在初始化完成后加载一些属性。有人可以告诉我在哪里可以找到此注释吗?我需要添加什么 Maven 依赖项才能获得此注释?为什么这不是 Spring 3.2.4 的一部分,或者我错过了一些我应该添加的 spring 包?

请指教

更新

我尝试使用 resthubs @PostInitialize 但它不起作用。我是否必须进行任何其他配置才能使此注释起作用。

4

4 回答 4

2

我想你的意思是@PostConstruct

从 3.2.4参考 手册,

JSR-250 @PostConstruct 和 @PreDestroy 注释通常被认为是在现代 Spring 应用程序中接收生命周期回调的最佳实践。使用这些注解意味着你的 bean 没有耦合到 Spring 特定的接口。

于 2014-01-16T14:50:51.330 回答
1

您要求的是来自 Spring 改进请求https://jira.spring.io/browse/SPR-5966的补丁。

于 2015-07-13T11:01:07.480 回答
0

RestHub 有一个 @PostInitialize 注释。检查Resthub @GitHubResthub API

<dependency>
    <groupId>org.resthub</groupId>
    <artifactId>resthub-common</artifactId>
    <version>2.1.0</version>
</dependency>
于 2014-05-24T10:16:51.337 回答
0

@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

于 2017-09-05T14:16:47.963 回答