springmvc获取上下文ApplicationContext

来源:互联网 发布:淘宝买苹果手机可靠吗 编辑:程序博客网 时间:2024/06/06 20:33

1、可通过下面工具类获取


package org.mvc.demo.utlis;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.stereotype.Component;@Componentpublic class SpringContextUtil implements ApplicationContextAware{    private static ApplicationContext applicationContext;//spring上下文    @Override    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {        SpringContextUtil.applicationContext=applicationContext;    }    public static ApplicationContext getApplicationContext(){        return applicationContext;    }    public static <T> T getBean(String name) throws BeansException{           return (T)applicationContext.getBean(name);    }}

主要是实现ApplicationContextAware接口

当一个类实现了这个接口(ApplicationContextAware)之后,这个类就可以方便获得ApplicationContext中的所有bean。换句话说,就是这个类可以直接获取spring配置文件中,所有有引用到的bean对象。


另外要注意Spring上下文和SpringMVC上下文的区别。

先看配置,Spring上下文配置,在Web.xml里

    <context-param>            <param-name>contextConfigLocation</param-name>            <param-value>classpath:spring.xml</param-value>        </context-param>      <!-- Spring监听器 -->        <listener>            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>        </listener>  
spring.xml里面配置的bean属于Spring上下文。


SpringMVC上下文配置,在Web.xml里

 <servlet>            <servlet-name>SpringMVC</servlet-name>            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>            <init-param>                <param-name>contextConfigLocation</param-name>                <param-value>classpath:spring-mvc.xml</param-value>            </init-param>            <load-on-startup>1</load-on-startup>            <async-supported>true</async-supported>        </servlet>    
spring-mvc.xml里面配置的bean属于SpringMVC上下文。


注意:SpringMVC上下文和Spring上下文是分开独立,两者是父子关系。Spring 父------SpringMVC 子。但是SpringMVC上下文是可以取得Spring上下文。反之则不行。


在tomcat服务启动日志中可以看到,root WebApplicationContext就是Spring的。

再回头来看,我们的SpringContextUtil,它应该放在Spring里面来设置,才有效。放在SpringMVC里面是没法完成自动实例化的。




阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 瓶盖太紧扭不开怎么办 铁盖玻璃瓶打不开怎么办 玻璃瓶塑料盖打不开怎么办 玻璃杯拧不开了怎么办 不锈钢瓶盖打不开怎么办 密封玻璃罐打不开怎么办 玻璃密封盒打不开怎么办 密封瓶打不开怎么办 瓶盖拧太紧打不开怎么办 玻璃瓶盖拧不紧怎么办 电饭煲盖子打不开怎么办 瓶盖太紧开不开怎么办 颜料拧不开怎么办 瓶盖一直转不开怎么办 水粉颜料拧不开怎么办 塑料盖子扭不开怎么办 水瓶盖太紧打不开怎么办 压盖子拧不开怎么办 公章盖子拧不开怎么办 塑料瓶打不开了怎么办 瓶盖转不开怎么办 化妆品瓶盖太紧拧不开怎么办 塑料杯拧不开了怎么办 玻璃瓶盖子拧不开怎么办 塑料水杯拧不开怎么办 玻璃瓶没盖子怎么办 罐装榨菜打不开怎么办 睫毛胶水拧不开怎么办 硅胶盖子打不开怎么办 胶水打不开了怎么办 胶水瓶扭不开怎么办 胶水盖打不开怎么办 睫毛胶打不开怎么办 水杯盖拧不紧怎么办 水杯拧不紧漏水怎么办 蜂蜜瓶子打不开怎么办 胶水瓶口堵住怎么办? 瓶子有气打不开怎么办 罐子瓶盖拧不开怎么办 泡菜瓶子打不开怎么办 玻璃罐盖子打不开怎么办