我们一般在使用@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 IoC管理的环境中获取IoC容器管理的Bean的简便方法。通过两步操作,首先获取当前WebApplicationContext,然后直接从容器中按需获取Bean实例。
1万+

被折叠的 条评论
为什么被折叠?



