@PostConstruct 初使化

a 夏天 提交于 2020-01-25 05:34:40

此注解属于java包下 javax.annotation.PostConstruct

通常都是一些初始化的操作,并且只会被服务器调用一次,但初始化可能依赖于注入的其他组件,所以要等依赖全部加载完再执行。

@Service
public class BeanA {

    @Autowired
    private BeanB beanB;

    public BeanA() {
        System.out.println("这是aaaaaa 的构造方法");
    }

    @PostConstruct
    private void chushihua() {
        System.out.println("这是aaaaaa 的 PostConstruct 方法");
        beanB.testB();
    }

    public void testA()
    {
        System.out.println("这是aaaaaa 的 testA 方法");
    }
}
@Service
public class BeanB {

    public BeanB() {
        System.out.println("这是bbbbbb 的 构造方法");
    }

    @PostConstruct
    private void chushihua() {
        System.out.println("这是bbbbbb 的PostConstruct 方法");
    }

    void testB() {
        System.out.println("这是bbbbbb 的 testB 方法");
    }
}
运行结果如下:
这是aaaaaa 的构造方法
这是bbbbbb 的 构造方法
这是bbbbbb 的PostConstruct 方法
这是aaaaaa 的 PostConstruct 方法
这是bbbbbb 的 testB 方法

----------------------

这是aaaaaa 的 testA 方法

总结:代码执行的顺序

1 构造方法
2 @Autowired 
3 @PostConstruct

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!