Spring:在非Spring Ioc管理的类中,使用@Autowired自动注入Ioc中的Bean对象时,报空指针。

我们一般在使用@Autowired时,都是在Spring Ioc容器管理的Bean中,有时我们需要在非Ioc管理的类中使用Ioc管理的Bean。通过@Autowired自动注入会报空指针错误的异常。之前遇到这个问题在网上找了很久,找到一个方法,但测试后发现还是有问题,也可能是我自己写的有问题。

今天介绍一种极简单的方式:

获取当前Ioc容器,直接从Ioc容器中获取Bean。

第一步:

WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext();

获取到了当前的WebApplicationContext,

第二部:

private Service service = context.getBean(Service.class);

通过Bean全类名或Bean的id获取Bean实例即可。

你可能感兴趣的:(Spring)