Spring中获取IOC容器中的Bean实例工具封装

您所在的位置:网站首页 springioc具体实例 Spring中获取IOC容器中的Bean实例工具封装

Spring中获取IOC容器中的Bean实例工具封装

#Spring中获取IOC容器中的Bean实例工具封装| 来源: 网络整理| 查看: 265

在spring中获取Bean的方式有很多们,这里使用实现ApplicationContextAware接口的方式封装一个可以快速获取Bean实例的方式,具体实现实例:

 

实现ApplicationContextAware接口获取程序运行上下文:

import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; /** * 描述:获取spring上下文环境,即ApplicationContext * * @author SXT * @version 1.0 * @date 2022/10/23 */ @Component public final class ApplicationContextHandler implements ApplicationContextAware { private static ApplicationContext applicationContext; /** * 获取运行程序的上下文环境 */ @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { ApplicationContextHandler.applicationContext = applicationContext; } /** * 获取运行程序的上下文环境 applicationContext * @return bean实例 */ public static ApplicationContext getApplicationContext(){ assertApplicationContext(); return applicationContext; } private static void assertApplicationContext(){ if (null == applicationContext) { throw new RuntimeException("ApplicationContextHandler中applicationContext属性为null,请确保ApplicationContext正常注入"); } } }

 

封装获取bean实例工具类:

import org.springframework.context.ApplicationContext; /** * 描述:获取IOC容器中的bean实例 * * @author SXT * @version 1.0 * @date 2022/10/23 */ public final class BeanUtils { private static ApplicationContext applicationContext = ApplicationContextHandler.getApplicationContext(); private BeanUtils(){} /** * 获取指定的bean * @return bean实例 */ public static T getBean(String beanName,Class tClass){ return applicationContext.getBean(beanName,tClass); } /** * 获取指定bean名实例 * @return bean实例 */ @SuppressWarnings("unchecked") public static T getBean(String beanName){ return (T)applicationContext.getBean(beanName); } /** * 获取指定bean类型实例 * @return bean实例 */ public static T getBean(Class tClass){ return applicationContext.getBean(tClass); } }

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3