博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot 上下文获取注入的Bean
阅读量:5293 次
发布时间:2019-06-14

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

import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.stereotype.Component;/** * 获取Spring上下文 * * @author kelin.ll * @date on 2019/7/18 */@Componentpublic 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 
* @return */ public static
T getBean(Class
clazz) { return getApplicationContext().getBean(clazz); } /** * 通过name,以及Clazz返回指定的Bean * * @param name * @param clazz * @param
* @return */ public static
T getBean(String name, Class
clazz) { return getApplicationContext().getBean(name, clazz); }}

测试用例:

import com.provider.ServiceProviderApplication;import lombok.extern.slf4j.Slf4j;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;/** * @author kelin.ll * @date on 2019/7/18 */@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest(classes = ServiceProviderApplication.class)@Slf4jpublic class ApplicationContextProviderTest {    @Test    public void getBeanByNameTest(){        TaskService taskService = (TaskService)ApplicationContextProvider.getBean("taskService");        System.out.println(taskService.getAll());    }    @Test    public void getBeanByClassTest(){        TaskService taskService = ApplicationContextProvider.getBean(TaskService.class);        System.out.println(taskService.getAll());    }    @Test    public void getBeanByNameAndClassTest(){        TaskService taskService = ApplicationContextProvider.getBean("taskService",TaskService.class);        System.out.println(taskService.getAll());    }}

 

转载于:https://www.cnblogs.com/gisblogs/p/11207091.html

你可能感兴趣的文章
html学习笔记二
查看>>
CentOS 6.6安装配置CVS
查看>>
测试工具文件4. 数据分析——定义analyseXML
查看>>
【转载】递归算法详解
查看>>
poj1852 Ants
查看>>
数据处理之文件读写
查看>>
Openssl生成证书
查看>>
工具使用及环境搭建
查看>>
单例模式 分析 代码优化
查看>>
[心情琐记]-为什么我选择做一个程序员?【谨以此文献给初入技术之路的纯白少年】...
查看>>
DBCC CHECKDB 数据库或表修复
查看>>
PHP的分页
查看>>
ZOJ 3791 An Easy Game [组合计数]
查看>>
DOM
查看>>
AOJ/搜索与递归及分治法习题集
查看>>
express
查看>>
iOS视图弹出、平移、旋转、翻转、剪切等变换效果实现
查看>>
iOS获取用户设备崩溃日志并分析
查看>>
String类
查看>>
1、IO概述及File类
查看>>