一、代码块和构造器的执行顺序
代码块分为静态代码块和非静态代码块
第一,类在加载的时候,会直接初始化静态成员(类成员变量),执行静态代码块。并且仅执行一次。
第二,在创建对象的时候,会调用构造方法。
Java中的非静态代码块会在创建Java对象时隐式执行,并且是在构造函数之前执行。非静态的代码块会在每次创建对象的时候,都会执行,也就是说,非会执行多次。一般也是用于对象的属性初始化。
二、Bean的生命周期之@PostConstruct
2.1 为什么需要@PostConstruct?
注意:
被@PostConstruct 注解的方法,返回值必须是void,没有参数。
被修改的方法在构造器执行并且成员属性初始化之后,投入使用之前执行。
好处就是,此时,属性已经初始化(如果是在spring容器中,那么就可以使用注入后的属性),方法内是可以使用初始化后的属性。