首页 > 其他分享 >实现了 ApplicationContextAware 接口的bean可以接收到 ApplicationContext 的引用

实现了 ApplicationContextAware 接口的bean可以接收到 ApplicationContext 的引用

时间:2024-07-09 20:30:50浏览次数:15  
标签:ApplicationContextAware ApplicationContext 容器 Spring 接口 bean

`ApplicationContext` 和 `ApplicationContextAware` 是Spring框架中的两个不同的概念,它们在Spring应用中扮演着不同的角色:

1. **ApplicationContext**:
    - `ApplicationContext` 是Spring框架中的一个接口,它扩展了 `BeanFactory` 接口,提供了更多高级功能,如事件发布机制、国际化消息访问、应用程序生命周期管理等。
    - 它是Spring容器的高级表现形式,负责管理应用中所有的bean,包括它们的创建、配置、销毁等生命周期管理。
    - `ApplicationContext` 可以提供对bean的访问,例如,通过bean的名称或类型来检索bean。

2. **ApplicationContextAware**:
    - `ApplicationContextAware` 是一个接口,它属于Spring的Aware系列接口之一。
    - 实现了 `ApplicationContextAware` 接口的bean可以接收到 `ApplicationContext` 的引用,这意味着它们可以在初始化时获得对Spring容器的访问。
    - 通过实现这个接口,bean可以调用 `setApplicationContext(ApplicationContext context)` 方法来注入Spring容器的引用,然后可以使用这个引用来访问其他bean或使用Spring容器提供的功能。

简而言之,`ApplicationContext` 是Spring容器本身,而 `ApplicationContextAware` 是一个允许bean与Spring容器交互的接口。通过实现 `ApplicationContextAware`,bean可以访问到 `ApplicationContext`,从而能够直接与Spring容器进行交互,例如获取其他bean的引用或发布事件等。

使用 `ApplicationContextAware` 可以带来便利,但也可能导致代码与Spring框架的耦合度增加,这在某些情况下可能不是最佳实践。因此,开发者应该根据具体的应用场景和设计原则来决定是否使用 `ApplicationContextAware`。
 

标签:ApplicationContextAware,ApplicationContext,容器,Spring,接口,bean
From: https://blog.csdn.net/xintai1999/article/details/140305592

相关文章

  • Springboot引入依赖自动注入bean的实现
    简单总结springboot导入依赖后自动注册所需bean的原理0、核心@Conditional条件加载+配置文件1、@Component或者@Configuration加@Bean直接写在第三方包里,行不行,不行,因为Spring扫描注解的包不一定包含这个。默认只扫主类同级和下级的包2、使用者主动用@Import引入,这个也没......
  • Spring之 IoC、BeanFactory、ApplicationContext
    IoC(InverseofControl)IoC,也就是控制反转。对于软件来说,即某一接口具体实现类的选择控制权从调用类中移除,转交给第三方决定,即由Spring容器借由Bean配置来进行控制。MartinFowler提出了DI(DependencyInjection,依赖注入)的概念用来代替IoC,即让调用类对某一接口实现类的......
  • Caused by: org.springframework.beans.factory.BeanCreationException: Error creati
    这个错误信息表明在初始化blogServiceImpl这个bean时遇到了问题,具体原因是Java类org.aspectj.util.PartialOrder$PartialComparable没有找到。这通常意味着你的项目中缺少AspectJ相关的依赖或配置。AspectJ是一个面向切面编程(AOP)的框架,它需要特定的编译器和运行时库。要......
  • SpringBean的理解和使用
    首先,什么是bean?bean是一个核心的概念,它是由IOC(控制反转)容器管理的实例对象,简单的说,就是通过配置文件或者注解的形式去标记的java类的实例,然后由Spring去对这些实例进行创建,初始化,装配,依赖注入和生命周期的管理。实例化:Spring通过反射机制创建Bean的实例。依赖注入(DI):Spr......
  • springboot 注册 bean
    都是spring支持的,@Import我也是从spring的文章张直接复制出来的,那边文章详细解释了bean的方方面面,感兴趣可以去看@Configuration、@Bean相当于spring的配置文件,spring在配置文件中可以配置bean,用注解方式就是这样的//这个类也会作为一个bean@Configurationpubli......
  • BeanUtil复制时,两对象中数据类型不一致导致的问题Can not set java.time.LocalDateTim
    @DatapublicclassAVo{privateLongendTime;privateStringname;privateStringid;}@DatapublicclassABVo{privateLocalDateTimeendTime;privateStringname;privateStringid;}AVoaVo=newAVo();......
  • 9.Bean的生命周期
    packagecom.xkj.org;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.stereotype.Component;impo......
  • BeanFactoryAware原理机制
    BeanFactoryAware是Spring框架中的一个接口,它允许一个bean在其初始化时感知到其所在的BeanFactory。这通常用于在bean内部进行一些高级配置或访问Spring容器中的其他bean。简单使用当你实现BeanFactoryAware接口时,你需要实现setBeanFactory(BeanFactoryb......
  • 【重写SpringFramework】第一章beans模块:本章小结(chapter 1-13)
    1.前言在Spring框架中,beans模块是仅次于core模块的基础模块。我们知道,IOC机制是Spring框架的两大基石之一,beans模块的主要任务就是实现控制反转和依赖注入的功能。从具体实现来说,BeanFactory接口是整个模块的核心接口,几乎所有功能都是围绕对象展开的。BeanFacto......
  • 如何使用JMeter 中beanshell sample实现 POST 请求并处理响应
    如何使用JMeter中beanshellsample实现POST请求并处理响应在JMeter的性能测试中,可以通过Java代码来实现复杂的POST请求并处理响应。以下是一个详细的示例代码解析:importjava.io.OutputStreamWriter;importjava.io.InputStreamReader;importjava.io.BufferedReade......