Spring、SpringBoot 开发实用技巧
友情链接
SpringBoot知识专栏: https://blog.youkuaiyun.com/qq_37248504/category_10924414.html
Spring知识专栏: https://blog.youkuaiyun.com/qq_37248504/category_10924424.html后端开发知识专栏: https://blog.youkuaiyun.com/qq_37248504/category_9699519.html
获取 ApplicationContext
直接注入
- 直接在使用的地方注入使用
@Autowired
private ApplicationContext applicationContextBean;
实现ApplicationContextAware接口
- 实例代码
SpringContextUtils,定义全局的获取上下文的工具类
@Component
public class SpringContextUtils implements ApplicationContextAware {
private static final Logger logger = LoggerFactory.getLogger(SpringContextUtils.class);
/**
* 上下文对象实例
*/
private static ApplicationContext applicationContext = null;
private SpringContextUtils() {
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
if (Objects.isNull(SpringContextUtils.applicationContext)) {
logger.info(LogConst.LOG_SUCCESS_PREFIX + "ApplicationUtils初始化...");
SpringContextUtils.applicationContext = applicationContext;
}
logger.info(LogConst.LOG_SUCCESS_PREFIX + "ApplicationUtils初始化成功!");
}
/**
* 获得当前的ApplicationContext
*
* @return ApplicationContext
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
/**
* 根据名称拿到 Bean
*
* @param name Bean 的名称
* @return Object
*/
@SuppressWarnings("all")
public static Object getBean(String name) {
return getApplicationContext().getBean(name);
}
/**
* 从ApplicationContext中获得Bean并且转型
*
* @param tClass 类
* @param <T> T
* @return T
*/
public static <T> T getBean(Class<T> tClass) {
return getApplicationContext().getBean(tClass);
}
}
作为参数获取 ApplicationContext Bean
Spring在初始化AutoConfiguration时会自动传入ApplicationContext,这时我们就可以使用下面的方式来获取ApplicationContext:
@Configuration
public class TestConfig {
private static final Logger logger = LoggerFactory.getLogger(TestConfig.class);
/**
* 作为参数获取 Bean
*
* @param applicationContext applicationContext
*/
public TestConfig(ApplicationContext applicationContext) {
logger.info(String.valueOf(applicationContext))
Spring Boot实用技巧汇总:从ApplicationContext到事件处理

本文介绍了如何在Spring Boot项目中高效获取ApplicationContext,利用Autowired注入,ApplicationContextAware接口,WebApplicationContextUtils工具,以及Bean的初始化和事件处理方法。还涵盖了如何通过SpringApplicationBuilder管理和启动顺序,以及配置文件中的属性注册和BeanFactory的获取。
最低0.47元/天 解锁文章
25万+

被折叠的 条评论
为什么被折叠?



