applicationContext的bean初始化

applicationContext.xml配置

<bean id="contextInitBeans" class="com.java1234.init.impl.ContextInitBeans" init-method="init"  lazy-init="false">
        <property name="contextInitBeans" >
            <list>
                <!-- 数据初始化 -->
                <bean id="globalPathInit" class="com.java1234.init.impl.GlobalPathInit"  lazy-init="false" >
                    <property name="urlMap">
                        <map>
                            <entry key="serverPath"><value>${tongda.global.serverPath}</value></entry>
                            <entry key="searchPath"><value>${tongda.global.searchPath}</value></entry>
                            <entry key="resourcePath"><value>${tongda.global.resourcePath}</value></entry>
                        </map>
                    </property>
                </bean>
            </list>
            </property>
    </bean>    

init的java类

package com.java1234.init.impl;

import org.springframework.web.context.ServletContextAware;

import com.java1234.init.ContextInit;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;


/**
 * 系统启动时要初始化的类
 * @author Luis
 * 
 */
public class ContextInitBeans implements ServletContextAware
{

    public ContextInitBeans() {
        super();
    }
    /**
     * 初始化对像集合
     */
    private List<ContextInit> contextInitBeans;

    private List<String> initBeansClazz;
    private ServletContext servletcontext;
    
    /**
     * 转换成对像
     */
    public void init()
    {
        GlobalPathInit c = null;
        for(int i=0;i<contextInitBeans.size();i++){
            c = (GlobalPathInit)contextInitBeans.get(i);
            c.init(servletcontext);
        }
    }


    /**
     * 转换成对像
     */
    public void init(HttpServletRequest request, HttpServletResponse response)
    {
        GlobalPathInit c = null;
        ServletContext servletContext = request.getSession().getServletContext();
        for(int i=0;i<contextInitBeans.size();i++){
             c = (GlobalPathInit)contextInitBeans.get(i);
             c.init(servletContext);
        }
        /*try
        {   
            for (String clazz : initBeansClazz)
            {
                ContextInit init = (ContextInit) Class.forName(clazz).newInstance();
                this.contextInitBeans.add(init);
            }
        } catch (InstantiationException e)
        {
            e.printStackTrace();
        } catch (IllegalAccessException e)
        {
            e.printStackTrace();
        } catch (ClassNotFoundException e)
        {
            e.printStackTrace();
        }*/
    }
    
    public List<ContextInit> getContextInitBeans()
    {
        if (null == contextInitBeans)
        {
            contextInitBeans = new ArrayList<ContextInit>();
        }
        return contextInitBeans;
    }

    public void setContextInitBeans(List<ContextInit> contextInitBeans)
    {
        this.contextInitBeans = contextInitBeans;
    }

    public List<String> getInitBeansClazz()
    {
        return initBeansClazz;
    }

    public void setInitBeansClazz(List<String> initBeansClazz)
    {
        this.initBeansClazz = initBeansClazz;
    }

    @Override
    public void setServletContext(ServletContext servletContext) {
           this.servletcontext = servletContext;
    }
}
 

GlobalPathInit类

package com.java1234.init.impl;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import javax.servlet.ServletContext;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.java1234.init.ContextInit;
import com.java1234.utils.Global;


public class GlobalPathInit implements ContextInit
{

    private Log log = LogFactory.getLog(GlobalPathInit.class);

    private Map<String, String> urlMap = new HashMap<String, String>();

    public void init(ServletContext context)
    {
        //log.info("你好GlobalPathInit");
        if (urlMap != null)
        {
            for (String key : urlMap.keySet())
            {
                context.setAttribute(key, urlMap.get(key));
                log.info("global path key:" + key + ";value:" + urlMap.get(key));
            }
        }
        String number = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
        log.info("随机数  >>> " + number);
        context.setAttribute(Global.RANDOM_NUMBER, number);
    }

    public void destroy()
    {
    }

    public Map<String, String> getUrlMap()
    {
        return urlMap;
    }

    public void setUrlMap(Map<String, String> urlMap)
    {
        this.urlMap = urlMap;
    }
}
 

猜你喜欢

转载自blog.csdn.net/xianjuke008/article/details/84236778