首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Spring Aware接口详解

若 Spring 检测到 bean 实现了 Aware 接口,则会为其注入相应的依赖。所以通过让bean 实现 Aware 接口,则能在 bean 中获得相应的 Spring 容器资源。...Spring 中提供的 Aware 接口有: BeanNameAware:注入当前 bean 对应 beanName BeanClassLoaderAware:注入加载当前 bean 的 ClassLoader...BeanFactoryAware:注入 当前BeanFactory容器 的引用 BeanNameAware和BeanFactoryAware都属于org.springframework.beans.factory.Aware...Aware接口是回调,监听器和观察者设计模式的混合,它表示bean有资格通过回调方式被Spring容器通知。 1 BeanNameAware 使对象能够知道容器中定义的bean名称。...大多数情况下,应避免使用任何Aware接口,因为实现这些接口会将代码耦合到Spring框架。

73010

Spring中的Aware解析

简介 Spring框架中提供了许多实现了Aware接口的类,这些类主要是为了辅助Spring访问容器中的数据,比如BeanNameAware,这个类能够在Spring容器加载的过程中将Bean的名字(id...常用的Aware BeanNameAware:能够获取bean的名称,即是id BeanFactoryAware:获取BeanFactory实例 ApplicationContextAware:获取ApplicationContext...stringRedisTemplate",StringRedisTemplate.class); 总结 spring底层的一些东西并不能通过自动注入直接从ioc容器中获取,但是spring提供了其他的一些方法获取相应的对象,比如一些Aware...,要向成功获取指定的对象,必备的条件如下: 实现xxxAware接口 自定义的类注入到容器中 源码解析 Aware的装配使用的BeanPostProcessor原理,在初始化之前调用set方法设置对应的值...主要的逻辑就是判断相应bean的类型,调用相应的set方法 private void invokeAwareInterfaces(Object bean) { if (bean instanceof Aware

95810

Spring之Aware接口介绍

在Bean对象的生命周期的方法中有好几个接口是Aware接口的子接口,所以弄清楚Aware接口对于理解Spring框架还是很有帮助的。...Aware接口   Aware接口从字面上翻译过来是感知捕获的含义。单纯的bean(未实现Aware系列接口)是没有知觉的;实现了Aware系列接口的bean可以访问Spring容器。...这些Aware系列接口增强了Spring bean的功能,但是也会造成对Spring框架的绑定,增大了与Spring框架的耦合度。...(Aware是“意识到的,察觉到的”的意思,实现了Aware系列接口表明:可以意识到、可以察觉到) 接口的源码如下: public interface Aware { }   可以发现该接口中并没有定义任何方法...1.Aware系列接口的共性 都以“Aware”结尾 都是Aware接口的子接口,即都继承了Aware接口 接口内均定义了一个set方法 2.Aware子接口中的set方法 2.1ApplicationContextAware

5.1K43

【Spring】Spring高级话题-Spring Aware

但是在实际项目中,基本上不可避免的要用到Spring容器本身的功能资源,这时你的Bean必须要意识到Spring容器的存在,才能调用Spring所提供的资源,这就是所谓的Spring Aware。...其实Spring Aware本来就是Spring设计用来框架内部使用的,如果使用了Spring Aware,你的Bean就会和Spring框架耦合。也就不能换容器了。...现在把Spring提供的Aware接口列出来: Spring提供的Aware接口 BeanNameAware 获得容器中Bean的名称 BeanFactoryAware 获得当前bean factory...这样可以获得文本信息 ApplicationEventPublisherAware 应用实践发布器,可以发布事件 ResourceLoaderAware 获得资源加载器,可以获得外部资源文件 Spring Aware...Spring】基于IntelliJ IDEA搭建Maven 示例 因为要演示外部资源,所以先准备好一个外部文件资源, 我就建在java文件目录下,test.txt文件,内容: 测试文件的内容 Spring Aware

58130
领券