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");


 
原文地址:https://www.cnblogs.com/kasher/p/7355967.html