在构造函数之后使用init函数与在构造函数中初始化 - JAVA

时间:2018-02-22 14:13:11

标签: java constructor initialization

之间有什么区别
public UserBean() {
        // create the session state
        state = new BigInteger(64, new SecureRandom()).toString(32);

}

public UserBean() {
        init();
}

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

其中state是该类的众多属性之一。

1 个答案:

答案 0 :(得分:1)

你误解了pick = ten_million[random.randint(0, 10000000)] result = cumm_sum(0.0, 1.0, 10000000, pick) 注释 在执行依赖注入之后,应该由容器调用带注释的方法。 您的应用代码无法调用

当然,使用不带容器的@PostConstruct(EJB,Spring,Guice ......)是没有意义的。

@PostConstruct doc说明:

  

PostConstruct注释用于需要的方法   在完成依赖注入以执行任何操作之后执行   初始化。

总结:

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

请注意,在步骤1,2和3之间,容器可能会为其他bean执行其他任务,但您不必担心,因为javadoc还声明必须在放入类之前调用​​@PostConstruct方法投入使用。