Spring支持哪些Aware接口?

news/2024/7/7 21:23:24

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。

\开源项目名称依赖类型版本号描述
1spring-boot-starter-triepom1.0.0-SNAPSHOT特定需求下查询速度远超开源检索工具,innodb下B+树或者ES中倒排索引无法与之比拟.
2spring-boot-starter-triejar1.0.0-M1提供了基于SpringCloud的服务节点,可以通过Nacos注册中心进行服务发现,实现了树的动态扩容与缩容,以及服务的动态上下线。
3Data-Providerpom1.0.0-SNAPSHOT提供了多种数据源的查询,以及数据的类型同步,作为一个Jar可以依赖在其他服务上动态的提供数据。

http://lihuaxi.xjx100.cn/news/1172434.html

相关文章

Linux系统提权

滥用的SUDO提权 执行流程:当前用户转换到root,然后以root身份执行命令,执行完成后,直接退回到当前用户 注意:执行sudo时输入的命令,是当前用户的密码,而非root密码 sudo配置文件:…

淘宝图片搜索接口API封装

本篇博文介绍了对淘宝图片搜索API的二次封装,将URL参数封装成Python函数,直接传入参数即可获取搜索结果,例如淘宝商品标题、价格、销量和URL等。提供了详细的代码示例和接口调用Demo。 taobao.item_search_img-按图搜索淘宝商品(拍…

SSM 如何使用 Kafka 实现消息队列?

SSM 如何使用 Kafka 实现消息队列? Kafka 是一个高性能、可扩展、分布式的消息队列系统,它支持多种数据格式和多种操作,可以用于实现数据传输、消息通信、日志处理等场景。在 SSM(Spring Spring MVC MyBatis)开发中…

Python statistics模块

常用功能 mean(data) mean(data) 用于求给定序列或者迭代器的算术平均数。 import statisticsexample_list [1,2,3,4,5,6]x statistics.mean(example_list)print(x) # 输出结果3.5 harmonic_mean(data) harmonic_mean(data) 用于计算数据的调和均值。​​​​​​​ x …

【Python】Python读取CSV文件

CSV文件是一种常见的数据存储格式,很多人在日常工作中需要使用Python处理CSV文件。Python提供了多种方法来读取CSV文件,包括使用标准库、第三方库和内置函数。本文将介绍多种Python读取CSV文件的方法。 使用Python内置csv库读取CSV文件 Python标准库中…

什么是 sudo,为什么它如此重要?

在当今的技术世界中,Linux 操作系统广泛应用于各种环境,包括个人计算机、服务器和嵌入式设备。作为一种强大的开源操作系统,Linux 提供了丰富的安全功能,以保护系统和用户的数据安全。在 Linux 安全领域中,sudo 是一项…

cython编译加密python源码

场景 python的解释特性是将py编译为独有的二进制编码pyc 文件,然后对pyc中的指令进行解释执行,但是 pyc的反编译却非常简单,可直接反编译为源码,当需要将产品发布到外部环境的时候,源码的保护尤为重要。 一、Cpython介…

Web安全:代码执行漏洞 测试.

Web安全:代码执行漏洞 测试 攻击者可以通过构造恶意输入来欺骗应用程序执行恶意代码。这种漏洞通常出现在应用程序中使用动态语言(如 PHP、Python、Ruby 等)编写的代码中,因为这些语言允许在运行时动态执行代码。攻击者可以通过构造特定的输入来欺骗应用…