@PostInitialize部分包

时间:2014-01-16 14:22:54

标签: java spring spring-bean

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

请告知

更新

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

4 个答案:

答案 0 :(得分:2)

我认为你的意思是@PostConstruct

从3.2.4 reference手册

  

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

RestHub有一个@PostInitialize注释。结帐Resthub @GitHubResthub API

<dependency>
    <groupId>org.resthub</groupId>
    <artifactId>resthub-common</artifactId>
    <version>2.1.0</version>
</dependency>

答案 3 :(得分:0)

@PostInitialize @PostConstruct 不同。

在大多数情况下,您可以使用 @PostConstruct

BUT!

@PostContruct 它不是通过弹簧代理调用的,例如 @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