首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构造函数后使用init函数与构造函数初始化后的使用

构造函数后使用init函数与构造函数初始化后的使用
EN

Stack Overflow用户
提问于 2018-02-22 14:13:11
回答 1查看 2K关注 0票数 2

两者有什么区别?

代码语言:javascript
复制
public UserBean() {
        // create the session state
        state = new BigInteger(64, new SecureRandom()).toString(32);

}

代码语言:javascript
复制
public UserBean() {
        init();
}

@PostConstruct
    public void init() {
        // create the session state
        state = new BigInteger(64, new SecureRandom()).toString(32);            
    }

其中状态是类的许多属性之一。

EN

回答 1

Stack Overflow用户

发布于 2018-02-22 14:20:28

您误解了@PostConstruct注释。

在执行依赖注入之后,容器应该调用带注释的方法。--您的应用程序代码不能调用

所以当然使用没有容器的@PostConstruct (EJB,Spring,Guice.)没有任何意义。

@PostConstruct文档声明:

PostConstruct注释用于在执行任何初始化时执行依赖注入后需要执行的方法。

概括地说:

  • 容器通过调用构造函数创建bean。
  • 容器设置bean依赖项。
  • 调用@PostConstruct方法

注意,在步骤1、2和3之间,容器可能对其他bean执行其他任务,但是您不应该担心这一点,因为javadoc还声明在类投入服务之前必须调用@PostConstruct方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48929561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档