Spring支持哪些Aware接口?
- Spring支持哪些Aware接口?
- Aware接口的优点
- ApplicationContextAware和BeanFactoryAware的区别
Spring支持哪些Aware接口?
- ApplicationContextAware:获取ApplicationContext对象
- BeanFactoryAware:获取BeanFactory对象
- BeanNameAware:获取Bean的名称
- EnvironmentAware:获取Environment对象
- ResourceLoaderAware:获取ResourceLoader对象
- ServletContextAware:在Web应用中获取ServletContext对象
- BeanClassLoaderAware:获取加载当前Bean的ClassLoader对象
Aware接口的优点
- 可以取得Spring容器中的各种对象和资源,如其他Bean、文件资源、环境变量等。
- 可以管理项目中的共享资源,如数据库连接池、配置属性等。
- 与Spring容器实现深度集成,可以根据运行环境动态调整Bean的行为。
- 简单而有效地扩展Spring Bean的功能。
ApplicationContextAware和BeanFactoryAware的区别
这两个的区别不如说是ApplicationContext和BeanFactory的区别。
- ApplicationContext是BeanFactory的子接口,提供了更多的功能,比如国际化处理、事件传播、Bean自动装配等。
- ApplicationContext是在BeanFactory的基础上实现的,所以BeanFactory能做的ApplicationContext都能做,但是BeanFactory不能做的ApplicationContext不一定能做。
- ApplicationContext是在BeanFactory的基础上实现的,所以BeanFactory的性能比ApplicationContext好。
- ApplicationContext是在BeanFactory的基础上实现的,所以BeanFactory的扩展性比ApplicationContext好。
- ApplicationContext是在BeanFactory的基础上实现的,所以BeanFactory的轻量级比ApplicationContext好。
- ApplicationContext是在BeanFactory的基础上实现的,所以BeanFactory的灵活性比ApplicationContext好。
我的Github地址,欢迎大家加入我的开源项目,或者(在我的主页联系我)加入你们的开源项目,点点Github-Stars。
\ | 开源项目名称 | 依赖类型 | 版本号 | 描述 |
---|---|---|---|---|
1 | spring-boot-starter-trie | pom | 1.0.0-SNAPSHOT | 特定需求下查询速度远超开源检索工具,innodb下B+树或者ES中倒排索引无法与之比拟. |
2 | spring-boot-starter-trie | jar | 1.0.0-M1 | 提供了基于SpringCloud的服务节点,可以通过Nacos注册中心进行服务发现,实现了树的动态扩容与缩容,以及服务的动态上下线。 |
3 | Data-Provider | pom | 1.0.0-SNAPSHOT | 提供了多种数据源的查询,以及数据的类型同步,作为一个Jar可以依赖在其他服务上动态的提供数据。 |