html
package com.wis.mes.context;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* @Author CHENEY
* @Date 2019/03/26
* @Version 1.0
* @Last Modified By : CHENEY
* @Last Modified Time : 2019/03/26
* @Description : bean对象的工具类 (ApplicationContextProvider Service)
* @function:针对多线程无法使用Autowired注入Bean设计
* @Type implements class
* Copyright (c) 2019 WIS Software Co.*
*/
@Component
public class ApplicationContextProvider implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
/**
* 获取applicationContext
*
* @return
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
/**
* 通过name获取 Bean.
*
* @param name
* @return
*/
public static Object getBean(String name) {
return getApplicationContext().getBean(name);
}
/**
* 通过class获取Bean
*
* @param clazz
* @param <T>
* @return
*/
public static <T> T getBean(Class<T> clazz) {
return getApplicationContext().getBean(clazz);
}
/**
* 通过name,以及Clazz返回指定的Bean
*
* @param name
* @param clazz
* @param <T>
* @return
*/
public static <T> T getBean(String name, Class<T> clazz) {
return getApplicationContext().getBean(name, clazz);
}
}
-------------------------------------------------------- 用法:
html
DataCoreService dataCoreService = ApplicationContextProvider.getBean(DataCoreService.class);
注意这里:
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ApplicationContextProvider.applicationContext = applicationContext;
}
2、web.xml 添加监听
<listener>
<description>spring监听器</description>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
如果启动时报找不到 applicationContext.xml 添加以下语句
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
2、applicationContext.xml 添加以下语句
<bean class="com.zzf.base.ApplicationContextProvider" lazy-init="false"/>