springContextUtil

Posted kasher

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springContextUtil相关的知识,希望对你有一定的参考价值。

工具类用来获取bean,

applicationContext.xml

<bean id="springContextUtil" class="com.hna.hka.rmc.common.util.SpringContextUtil" lazy-init="false"></bean>

工具类:

package com.hna.hka.rmc.common.util;

import javax.servlet.ServletContext;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.web.context.ServletContextAware;

/**
 * 从Spring容器中取得对象
 * @author weiyuan
 *
 */
public class SpringContextUtil implements ApplicationContextAware,
        ServletContextAware {

    private static ApplicationContext applicationContext; // Spring上下文对象.静态变量,可在任何代码任何地方任何时候中取出ApplicaitonContext. 

    private static ServletContext servletContext;// 注入 系统上下文对象
    
    Log log = LogFactory.getLog(SpringContextUtil.class);
    /**
     * 实现ApplicationContextAware接口的回调方法,设置上下文环境
     * 
     * @param applicationContext
     * @throws BeansException
     */
    public void setApplicationContext(ApplicationContext applicationContext) {
        log.debug(" com.hna.hka.rmc.common.util.SpringContextUtil setApplicationContext "+applicationContext);
        SpringContextUtil.applicationContext = applicationContext;
    }

    /**
     * @return ApplicationContext
     */
    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }

    /**
     * 获取对象
     * 
     * @param name
     * @return Object 一个以所给名字注册的bean的实例
     * @throws BeansException
     */
    public static Object getBean(String name) throws BeansException {
        return applicationContext.getBean(name);
    }

    /**
     * 功能 : 实现 ServletContextAware接口,由Spring自动注入 系统上下文对象
     * 
     **/
    public void setServletContext(ServletContext servletContext) {
        SpringContextUtil.servletContext = servletContext;
    }

    /**
     * @return ServletContext
     */
    public static ServletContext getServletContext() {
        return servletContext;
    }
}


java调用:
private Template template = (Template) SpringContextUtil.getBean("Template");

 

 

 





以上是关于springContextUtil的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot——Spring容器工具类SpringContextUtils.java

获取Spring Bean工具类SpringContextUtil

如何在线程中获取spring 管理的bean

springboot实例化Environment的方法

[Spring开发]获取上下文对象

SpringBoot 普通类中获取Bean对象(dao、service...)