本文主要是介绍调用@PostConstruct 时 ApplicationContext 还没有初始化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
➖➖➖➖➖➖
- 1️⃣ 问题描述
- 2️⃣ 解决方式
1️⃣ 问题描述
在@PostConstruct
方法下获取 ApplicationContext
出现空指针异常,排查发现是调用的时候还未初始化 ApplicationContext
对象
2️⃣ 解决方式
- 使用@DependsOn
- @DependsOn注解表示一个Bean的初始化依赖于其他Bean。
- 如果一个Bean上使用了@DependsOn注解,则Spring容器在初始化该Bean之前,会先初始化该Bean所依赖的其他Bean。
- 例如,如果有一个UserServiceImpl类,它依赖于UserDaoImpl类,则可以在UserServiceImpl类上添加@DependsOn注解,并指定UserDaoImpl类的名称,如下所示:
@Service
@DependsOn("userDaoImpl")
public class UserServiceImpl implements UserService {// ...
}
这样,Spring容器在初始化UserServiceImpl类之前,会先初始化userDaoImpl类。
这篇关于调用@PostConstruct 时 ApplicationContext 还没有初始化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!