使用Spring底层组件实现Aware接口
作者:加把劲骑士RideOn
这篇文章主要介绍了使用Spring底层组件实现Aware接口,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
实现Aware接口使用Spring底层组件
Aware接口的实现类
基于@Component,通过Aware的实现类在容器创建之前将Spring底层的信息获取并使用。
例如:
- 获取应用上下文对象applicationContext的
ApplicationContextAware - 获取该类的bean对象信息的
BeanNameAware - 获取该类类加载器classloader的
BeanClassLoaderAware

/**
* 通过Aware接口的实现类,获取到Spring底层相关组件
*/
@Getter
@Component
public class AwareComponent implements ApplicationContextAware, BeanNameAware {
/**
* 通过实现类的构造方法,获取到相应的Spring容器参数
*/
private ApplicationContext applicationContext;
private String thisBeanName;
/**
* 可以获得注册的Ioc容器的Context对象
*
* @param applicationContext 从ApplicationContextAware获取到的当前bean的名字
* @throws BeansException 获取bean异常
*/
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
/**
* 可以获取到当前Bean(AwareComponent)的名字
*
* @param name 从BeanNameAware中获取到的当前bean的名字
*/
@Override
public void setBeanName(String name) {
this.thisBeanName = name;
}
}使用

AnnotationConfigApplicationContext configContext = new AnnotationConfigApplicationContext(BeanConfiguration.class);
// 测试Aware接口的实现类获取Spring的参数
AwareComponent awareComponent = configContext.getBean(AwareComponent.class);
System.out.println("This Context: " + configContext);
System.out.println("AwareComponent: " + awareComponent.getApplicationContext());到此这篇关于使用Spring底层组件实现Aware接口的文章就介绍到这了,更多相关Spring Aware接口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
