赞
踩
- 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);
- }
- }
-------------------------------------------------------- 用法:
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"/>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。