写代码碰到一个这样的情况,在一个没有放在IOC容器的内,要从容器中获取对象。
首先我们知道只有在IOC容器中的对象才能从容器中取其他对象,否则取不了的。意思就是这里通过注解,set等方式注入是无解的。
然后我们会想到new 一个ApplicationContext对象,再从他里面取,其实这样不是一个有效的解决办法,因为你根本不知道存放在容器中的对象有多少,如果很多,构造一个ApplicationContext是非常消耗资源的,不划算的。所以我们应该想办法获取在项目启动时创建的那个IOC容器的,而不是再次new一个新的。
这里我们就用到了一个新的类WebApplicationUtis

通过这个工具类的getWebApplicationContext(ServletContext sc)这个静态方法,传一个servletContext给它,就可以得到WebApplicationContext,然后就可以通过getBean()获取想要的对象了
本文介绍了一种在未托管于Spring IOC容器内的代码中获取容器中对象的方法。利用WebApplicationUtils工具类的getWebApplicationContext方法,可以获取到WebApplicationContext实例,进而实现对容器内对象的访问。
630

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



