spring非IOC容器中的对象获取IOC容器中对象的方法

写代码碰到一个这样的情况,在一个没有放在IOC容器的内,要从容器中获取对象。

首先我们知道只有在IOC容器中的对象才能从容器中取其他对象,否则取不了的。意思就是这里通过注解,set等方式注入是无解的。

然后我们会想到new 一个ApplicationContext对象,再从他里面取,其实这样不是一个有效的解决办法,因为你根本不知道存放在容器中的对象有多少,如果很多,构造一个ApplicationContext是非常消耗资源的,不划算的。所以我们应该想办法获取在项目启动时创建的那个IOC容器的,而不是再次new一个新的。

这里我们就用到了一个新的类WebApplicationUtis


通过这个工具类的getWebApplicationContext(ServletContext sc)这个静态方法,传一个servletContext给它,就可以得到WebApplicationContext,然后就可以通过getBean()获取想要的对象了

原文地址:https://www.cnblogs.com/chenny3/p/10226207.html