Springboot中随时获取ApplicationContext,得到想要的bean
来源:互联网 发布:windows下安装docker 编辑:程序博客网 时间:2024/06/06 07:23
在springBoot启动类的main方法中写成
/** * 启动嵌入式的Tomcat并初始化Spring环境 */ public static void main(String[] args) throws Exception { ApplicationContext app = SpringApplication.run(WebApplication.class, args); SpringUtil.setApplicationContext(app); //SpringApplication.run(WebApplication.class, args); }
创建工具类
package com.yssoft.fs.supervise.utils;import com.yssoft.fs.repository.entity.comm.EarlyWarningTask;import com.yssoft.fs.supervise.service.riskWarning.RiskWarningTaskService;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import javax.annotation.Resource;import java.util.List;public class SpringUtil { private static ApplicationContext applicationContext = null;// 非@import显式注入,@Component是必须的,且该类必须与main同包或子包 // 若非同包或子包,则需手动import 注入,有没有@Component都一样 // 可复制到Test同包测试 public static void setApplicationContext(ApplicationContext applicationContext) throws BeansException { if(SpringUtil.applicationContext == null){ SpringUtil.applicationContext = applicationContext; } //查询所有预警任务,开启的预警任务自动开启 RiskWarningTaskService riskWarningTaskServiceStatic=applicationContext.getBean(RiskWarningTaskService.class); List<EarlyWarningTask> earlyWarningTask = riskWarningTaskServiceStatic.findEarlyWarningTaskAll(); for (EarlyWarningTask warningTask : earlyWarningTask) { //如果任务是打开的,可就开启任务 if("1".equals(warningTask.getStat())){ riskWarningTaskServiceStatic.editState("1",warningTask.getId().toString(),warningTask.getTitle()); riskWarningTaskServiceStatic.editState("0",warningTask.getId().toString(),warningTask.getTitle()); } } } //获取applicationContext public static ApplicationContext getApplicationContext() { return applicationContext; } //通过name获取 Bean. public static Object getBean(String name){ return getApplicationContext().getBean(name); } //通过class获取Bean. public static <T> T getBean(Class<T> clazz){ return getApplicationContext().getBean(clazz); } //通过name,以及Clazz返回指定的Bean public static <T> T getBean(String name,Class<T> clazz){ return getApplicationContext().getBean(name, clazz); }}
阅读全文
0 0
- Springboot中随时获取ApplicationContext,得到想要的bean
- springboot通过名称获取bean(applicationContext)
- Spring中从ApplicationContext中获取bean与从bean工厂中获取bean的区别
- spring中通过ApplicationContext获取bean和通过bean工厂获取bean的区别
- 【转】从spring的bean中获取servletContext和applicationContext
- ApplicationContext中Bean的生命周期
- ApplicationContext中Bean的生命周期
- spring获取applicationContext.xml中bean内容
- quartz 中 使用 applicationContext.xml中的bean 得到 hiberante的Session
- Spring 使用ApplicationContextAware (bean中获取在ApplicationContext的引用)
- grails 通过applicationContext获取bean
- Spring Bean获取applicationcontext方法
- springboot 获取普通Bean
- Java类获取Spring的applicationContext.xml文件中的bean
- servlet下获取spring的applicationContext方法,取bean
- 手动获取spring的ApplicationContext和bean对象
- 手动获取spring的ApplicationContext和bean对象
- ApplicationContext的事件机制&&让Bean获取Spring容器
- 主成分分析原理详解
- Nginx的负载均衡的那点事-session和文件上传下载问题
- Oracle over(partition by ...order by ...)
- iOS开发之NSUserDefaults
- 【直播报名】阿里云技术系列直播:异构计算、函数计算、自研数据库…
- Springboot中随时获取ApplicationContext,得到想要的bean
- java I/O InputStream 及子类 FileInputStream 源码分析
- 数据库表设计,没有最好只有最适合(邻接表、路径枚举、嵌套集、闭包表)
- ke-fullscreen.js
- 移动端web开发
- js判断PC端或是移动端
- Ubuntu 16.04安装使用--Ubuntu16.04下基于Docker的Caffe-GPU版本环境搭建总结
- LBD算法
- ZOJ