java - 在 @PostConstruct 中调用另一个 bean 的方法引发了一个空指针 ex

标签 java spring spring-ioc

我正在使用Spring4。

一共有三个bean:bean1bean2bean3,在我的bean1的@PostConstruct方法中,我调用bean2的方法,bean2的这个方法将调用bean3的方法,并且我得到了一个N​​PE,因为调用了bean2中的方法,bean3没有尚未注入(inject)。

如何避免这种情况发生?代码看起来像这样:

@Service
public class Bean1 {
    @Autowired
    private Bean2 bean2;
    @PostConstruct
    public void init() {
        // invoke bean2's method
        bean2.test();
    }

}

@Service
public class Bean2 {
    @Autowired
    private Bean3 bean3;

    public void test() {
        // invoke bean3's method,got a null pointer ex,because bean3 is null.
        bean3.xxx();
    }
}

最佳答案

无论您发布什么代码,我都不认为您可能会遇到任何问题。 只需检查您自己创建 bean 的整个代码,而不是通过 spring 创建它,这只是一种情况。

如果你自己创建bean,那么spring不会注入(inject)任何东西并提供bean对象为null。发布

关于java - 在 @PostConstruct 中调用另一个 bean 的方法引发了一个空指针 ex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58927924/

相关文章:

java - 当线程调用 wait 时,它会释放锁而不是竞争条件

java - JMockit Deencapsulation setField 不持久

java - 使用 tomcat9 + Memcache 时,HttpSession 对象在 session 之间变为 null

java - 已经使用 springSecurityFilterChain 构建了异常

java - 如何在使用 Spring 和 JAX-RS 构建的 REST Api 中处理 Unicode 字符...?

java - 在名称为 'HelloWeb' Spring MVC 的 DispatcherServlet 中找不到具有 URI [/HelloWeb/] 的 HTTP 请求的映射

java - 在spring mongodb中索引复合对象

java - 关于Spring框架中的AnnotationConfigApplicationContext

java - Spring IoC : Reasons to have null checks with constructor autowiring