Spring中的Aware
时间: 2023-06-09 22:07:38 浏览: 67
Aware接口是Spring框架中用于让bean获取容器本身的通知回调接口,在对象创建完毕后调用set方法将容器本身传入对象中。例如,ApplicationContextAware可以让bean获取ApplicationContext,BeanNameAware可以让bean获取自己在容器中的name等。通过实现Aware接口,bean可以与Spring容器进行更好的交互。
相关问题
spring中aware接口的作用
在 Spring 中,`Aware` 接口是一组标记接口,用于在 Bean 实例化后对其进行一些操作,比如注入一些 Spring 所提供的对象(如 `ApplicationContext`、`BeanFactory` 等)或者自定义对象(如 `ResourceLoader`、`Environment` 等)。
`Aware` 接口本身并没有提供任何方法,它只是起到一个标记的作用,告诉 Spring 容器,在实例化 Bean 后需要对其进行一些操作。Spring 会通过反射机制来自动装配 `Aware` 接口所声明的依赖对象,从而完成依赖注入。
例如,如果一个 Bean 实现了 `ApplicationContextAware` 接口,那么在它被实例化后,Spring 会自动将 `ApplicationContext` 对象注入到该 Bean 中。这样,该 Bean 就可以直接使用 `ApplicationContext` 对象提供的各种功能了。
总之,`Aware` 接口提供了一种在 Bean 实例化后进行一些操作的方式,对于某些需要在 Bean 初始化后进行特殊处理的情况,非常有用。
SpringBoot中aware有什么用
在 Spring Boot 中,Aware 接口是一个回调接口,通过它,我们可以在 Bean 实例化后,Spring 容器自动将一些底层资源或者对象注入到 Bean 中,以便在 Bean 中可以使用这些底层资源或者对象。
Spring Boot 中常用的 Aware 接口有以下几种:
1. ApplicationContextAware:实现该接口可以获取 ApplicationContext 上下文对象,从而可以在 Bean 内部获取其他 Bean 实例和 Spring 容器的相关信息。
2. BeanFactoryAware:实现该接口可以获取 BeanFactory 对象,从而可以在 Bean 内部获取其他 Bean 实例和 Spring 容器的相关信息。
3. EnvironmentAware:实现该接口可以获取 Spring Boot 应用的环境变量和属性配置信息,如配置文件中的属性值等。
4. ServletContextAware:实现该接口可以获取 ServletContext 对象,从而可以在 Bean 内部获取 Servlet 上下文相关信息。
5. ResourceLoaderAware:实现该接口可以获取 ResourceLoader 对象,从而可以在 Bean 内部获取 Spring 应用中的资源文件。
利用 Aware 接口,我们可以在 Bean 实例化后,自动获取到 Spring 容器中的一些底层资源或者对象,从而可以更方便地使用这些资源或者对象。