Springboot获取bean实例之SpringContextUtil详解
更新时间:2025年03月27日 09:21:50 作者:stupid child
这篇文章主要介绍了Springboot获取bean实例之SpringContextUtil使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Springboot获取bean实例-SpringContextUtil
1、工具类 SpringContextUtil
package XXXXXXXX;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
*
* 获取spring容器,以访问容器中定义的其他bean
*/
@Component
public class SpringContextUtil implements ApplicationContextAware {
// Spring应用上下文环境
private static ApplicationContext applicationContext;
/**
* 实现ApplicationContextAware接口的回调方法,设置上下文环境
*
* @param applicationContext
*/
public void setApplicationContext(ApplicationContext applicationContext) {
SpringContextUtil.applicationContext = applicationContext;
}
/**
* @return ApplicationContext
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
/**
* 通过name获取对象
*/
public static Object getBean(String name) throws BeansException {
return applicationContext.getBean(name);
}
}2、要注入的bean
package XXXXX;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class ShardingVariableConfig {
@Value("${sharding.data.node}")
private int dataNode;
@Value("${sharding.table.node}")
private int tableNode;
//获取分库参数
public int getDataNode(){
return this.dataNode;
}
//获取分表参数
public int getTableNode(){
return this.tableNode;
}
}
3、yml配置

4、方法中调用
ShardingVariableConfig valueService = (ShardingVariableConfig) SpringContextUtil.getBean("shardingVariableConfig");//bean的名称
int dataNode = valueService.getDataNode();注意事项:
工具类SpringContextUtil和JavaBean都要加注解@Component,否则会Spring无法扫描到二者的位置
总结
通过此方法可以在任何地方调用JavaBean,解决@Autowired或@Resource无法注入的问题,无法直接通过@Value在某些类中取到值问题
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
一分钟入门Java Spring Boot彻底解决SSM配置问题
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域成为领导者2021-10-10
Spring Boot+Nginx+MySQL容器化实战指南
这篇文章主要介绍了Spring Boot+Nginx+MySQL容器化实战指南,本文通过思路代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧2026-03-03
Java concurrency之CountDownLatch原理和示例_动力节点Java学院整理
CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 下面通过本文给大家分享Java concurrency之CountDownLatch原理和示例,需要的的朋友参考下吧2017-06-06
如何为 Spring Boot 项目配置 Logback 日志
由于 Spring Boot 的默认日志框架选用的 Logback,再加上 Log4j2 之前爆过严重的漏洞,所以我们这次就只关注 Logback,本文重点给大家介绍如何为 Spring Boot 项目配置 Logback 日志,感兴趣的朋友跟随小编一起看看吧2024-07-07


最新评论