博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot中普通类获取Spring容器中的Bean
阅读量:6112 次
发布时间:2019-06-21

本文共 1509 字,大约阅读时间需要 5 分钟。

我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个类注入到spring容器中,交给spring容器进行管理,但是在实际当中,我们往往会碰到在一个普通的Java类中,自己动手new的对象,想直接使用spring提供的其他对象或者说有一些不需要交给spring管理,但是需要用到spring里的一些对象;

虽然通过

ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");ac.getBean("beanId")

 

方式加载xml文件来获取上下文环境获得bean,但由于在web application中,spring是通过web.xml加载配置的,所有会加载两次spring容器,同时在spring boot中一般是无xml配置的,所以需要其他方式了;

1.通过实现 ApplicationContextAware接口 定义一个SpringUtil工具类,实现ApplicationContextAware接口

1 public class SpringUtil implements ApplicationContextAware {  2 private static ApplicationContext applicationContext;  3  4     @Override  5     public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { 6         if(SpringUtil.applicationContext == null) {  7             SpringUtil.applicationContext = applicationContext;  8         }  9     } 10 11     //获取applicationContext 12     public static ApplicationContext getApplicationContext() { 13         return applicationContext; 14     } 15 16     //通过name获取 Bean. 17     public static Object getBean(String name){ 18         return getApplicationContext().getBean(name); 19     } 20 21     //通过class获取Bean. 22     public static T getBean(Class clazz){ 23         return getApplicationContext().getBean(clazz); 24     } 25 26     //通过name,以及Clazz返回指定的Bean 27     public static T getBean(String name,Class clazz){ 28         return getApplicationContext().getBean(name, clazz); 29     } 30 }

 

转载于:https://www.cnblogs.com/canda/p/7835790.html

你可能感兴趣的文章
将远程调试的控制台信息输出至Eclipse
查看>>
Windows2008之IIS安装
查看>>
Linux下python升级步骤
查看>>
EBS 发运管理操作实例9——发运例外处理(Ship Exceptions)
查看>>
一键去除 UC浏览器 论坛模式 内置的广告
查看>>
谈谈个人关于程序开发中,“零配置”和“有配置”的看法
查看>>
Go fmt包
查看>>
Java邮件开发-----java邮件开发(一)
查看>>
常用自动化测试工具介绍(支持B/S、C/S)
查看>>
java加密解密用法
查看>>
jsp 下载
查看>>
【ASP.NET Web API教程】5.4 ASP.NET Web API批处理器
查看>>
带下划线的LABEL控件
查看>>
CentOS上安装软件错误提示:configure: error: no acceptable C compiler found in $PATH
查看>>
【SAS NOTE】MEANS
查看>>
幸福框架:研发团队
查看>>
NSThread 的创建和使用
查看>>
对未登陆的用户进行处理的页面
查看>>
Ext Js简单Data Store创建及使用
查看>>
uva11130
查看>>