postconstruct 和 ApplicationContextAware 的执行顺序
时间: 2024-03-08 21:43:39 浏览: 64
Spring定时任务中@PostConstruct被多次执行异常的分析与解决
在介绍postconstruct和ApplicationContextAware的执行顺序之前,先简单介绍一下它们的作用。
1. @PostConstruct注解:
@PostConstruct注解是javax.annotation包下的一个注解,用于标记一个方法,在对象创建完成后,初始化之前执行。通常用于执行一些初始化操作,比如初始化成员变量、加载配置文件等。
2. ApplicationContextAware接口:
ApplicationContextAware接口是Spring框架提供的一个接口,用于获取Spring容器的上下文对象ApplicationContext。通过实现该接口,可以在Bean中获取到Spring容器的上下文对象,从而可以使用容器提供的一些功能,比如获取其他Bean、获取环境变量等。
关于它们的执行顺序,可以简单总结如下:
1. 实现ApplicationContextAware接口的Bean的setApplicationContext方法会在Bean创建完成后被调用,用于将ApplicationContext对象注入到Bean中。
2. 在Bean创建完成后,会执行被@PostConstruct注解标记的方法,用于执行一些初始化操作。
所以,执行顺序是先执行setApplicationContext方法,然后再执行@PostConstruct注解标记的方法。
阅读全文