springboot使⽤上下⽂获取bean
问题
在使⽤springboot开发项⽬过程中,有些时候可能出现说会有在spring容器加载前就需要注⼊bean的类,这个时候如果直接使⽤@Autowire注解,则会出现控制针异常!
解决办法
如下:
创建⼀个springContextUtil类
package cn.eangaie.appcloud.util;
import t.ApplicationContext;
public class SpringContextUtil {
private static ApplicationContext applicationContext;
//获取上下⽂
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
//设置上下⽂
public static void setApplicationContext(ApplicationContext applicationContext) {
SpringContextUtil.applicationContext = applicationContext;
}
//通过名字获取上下⽂中的bean
public static Object getBean(String name){
Bean(name);
}
/
/通过类型获取上下⽂中的bean
public static Object getBean(Class<?> requiredType){
Bean(requiredType);
}
}
在AppcloudApplication.class 启动类⾥边,将初始化该类,并将context注⼊进去
public class AppcloudApplication {
public static void main(String[] args) {
ApplicationContext context=SpringApplication.run(AppcloudApplication.class, args);
SpringContextUtil.setApplicationContext(context);
}
}
在需要注⼊bean的地⽅,使⽤getBean(bean名称)的⽅式获取
spring boot选择题MessageTemplateController messageTemplateController= (MessageTemplateController) Bean("messageTemplateController");
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论