Spring Boot 普通的类中获取 Bean 对象的信息
2021/5/6 16:46:47
在 Spring Boot 项目中,在普通的类中如何获取 Bean 对象的信息?
使用场景
在一个普通类中要使用到配置文件中的配置,如果这个配置是在控制器中用到的话,我们可以直接使用 @Autowired 注入这个配置 Bean ,但在普通类中却不可以。这时候就需要我们获取 这个Bean 对象的信息
解决方法
构建如下类,然后通过此类获取即可。
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class SpringUtils implements ApplicationContextAware{
private static ApplicationContext applicationContext = null;
@Override
public void setApplicationContext(ApplicationContext arg0) throws BeansException {
if (applicationContext == null) {
applicationContext = arg0;
}
}
// 获取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);
}
}
使用示例
在一个普通的类中访问配置信息
HtmlParseConfig htmlParseConfig = SpringUtils.getBean(HtmlParseConfig.class);
String url = htmlParseConfig.getUrl();
扫码分享
版权说明
作者:SQBER
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
{0}
{5}
{1}
{2}回复
{4}
*昵称:
*邮箱:
个人站点:
*想说的话: