springboot通过名称获取bean(applicationContext)
来源:互联网 发布:论坛软件有哪些 编辑:程序博客网 时间:2024/06/10 03:54
IOC容器有beanFactory 和ApplicationContext.通常建议使用后者,因为它包含了前者的功能。Spring的核心是ApplicationContext.它负责管理 beans 的完整生命周期。我们可以从applicationContext里通过bean名称获取安装的bean.进行某种操作。不能直接使用applicationContext.而需要借助applicationContextAware.具体方法如下:
@Componentpublic class ApplicationContextHelper implements ApplicationContextAware { private static ApplicationContext applicationContext; public ApplicationContextHelper() { }
@Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { ApplicationContextHelper.applicationContext = applicationContext; } public static Object getBean(String beanName) { return applicationContext != null?applicationContext.getBean(beanName):null; }}
声明一个
ApplicationContextHelper组件,名字随意。它实现了ApplicationContextAware接口。并重写setApplicationContext方法。在该组件里可以通过名字获取某个bean.使用:@SpringBootApplicationpublic class Application { public static void main(String[] args) { System.setProperty("user.timezone","Asia/Shanghai"); TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai")); SpringApplication.run(Application.class, args); } @Bean(name="restTemplate") public RestTemplate restTemplate() { RestTemplate restTemplate = new RestTemplate(); restTemplate.getMessageConverters() .add(0, new StringHttpMessageConverter( Charsets.UTF_8)); return restTemplate; }}public class TestTask implements Callable<String> { private RestTemplate restTemplate = (RestTemplate) ApplicationContextHelper.getBean( "restTemplate" );public doSomeThing(){}}此外,不只可以通过名称,还可以通过属于某一类Class<T>,来获取类,例如,获取所有的requestHandler及其url映射,可以通过如下语句:RequestMappingHandlerMapping handlerMapping = applicationContext.getBean(RequestMappingHandlerMapping.class);关于RequestMappingHandlerMapping类,请参考:http://www.cnblogs.com/leftthen/p/5208404.html
阅读全文
0 0
- springboot通过名称获取bean(applicationContext)
- grails 通过applicationContext获取bean
- Spring通过ApplicationContext主动获取bean
- Spring通过ApplicationContext主动获取bean
- Springboot中随时获取ApplicationContext,得到想要的bean
- spring中通过ApplicationContext获取bean和通过bean工厂获取bean的区别
- java通过名称获取实体bean
- Spring Bean获取applicationcontext方法
- springboot 获取普通Bean
- Spring,通过ApplicationContextAware获取ApplicationContext
- Spring获取bean方式(BeanFactory和ApplicationContext)
- Spring获取bean方式(BeanFactory和ApplicationContext)
- spring获取applicationContext.xml中bean内容
- 通过ApplicationContextAware获取bean
- 通过ApplicationContextAware获取bean
- 通过ApplicationContextAware获取bean .
- 通过ApplicationContextAware获取bean
- 通过ApplicationContextAware获取bean
- cmd最最常用的六个操作命令,你知道吗?
- Spring Boot 第六章 spring Boot 核心
- *TEST 7 for NOIP 玄学解题 (150/300)
- linux 获取文件元数据、文件夹的操作、ls功能实现
- mysql 数据库 day_06
- springboot通过名称获取bean(applicationContext)
- 嵌入式Linux学习笔记(4)——下载bootoader
- 虚拟机下安装JDK和Eclipse
- 基于bash tcp 外网getshell
- 机械臂(6)-- 逆解-终章
- 1055: 背包1(填满型01背包)
- 198. House Robber
- JS实现数组去重
- 可迭代对象(iterable)与迭代器类型(iterator)