16、spring注解学习(自动装配)——Aware注入Spring底层组件&原理

自动装配-Aware注入Spring底层组件&原理

  • Aware 接口,提供了类似回调函数的功能
  • 自定义组件想要使用Spring 容器底层的一些组件(Application Context,Bean Factory);自定义组件需要实现xxxAware接口;在创建对象的时候,会调用接口规定的方法注入相关组件
    package org.springframework.beans.factory;
    
    public interface Aware {
    
    }

    ApplicationContextAware 自动注入IOC容器

    复制代码
    package org.springframework.context;
    
    import org.springframework.beans.BeansException;
    import org.springframework.beans.factory.Aware;
    
    public interface ApplicationContextAware extends Aware {
    
        void setApplicationContext(ApplicationContext applicationContext) throws BeansException;
    
    }
    复制代码

    ApplicationEventPublisherAware 注入事件派发器

    复制代码
    package org.springframework.context;
    
    import org.springframework.beans.factory.Aware;
    
    public interface ApplicationEventPublisherAware extends Aware {
    
        void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher);
    
    }
    复制代码

    BeanClassLoaderAware 类加载器

    package org.springframework.beans.factory;
    
    public interface BeanClassLoaderAware extends Aware {
    
        void setBeanClassLoader(ClassLoader classLoader);
    
    }

    BeanFactoryAware Bean工厂

    package org.springframework.beans.factory;
    
    import org.springframework.beans.BeansException;
    public interface BeanFactoryAware extends Aware {
    
        void setBeanFactory(BeanFactory beanFactory) throws BeansException;
    
    }

    BeanNameAware Bean名字

    package org.springframework.beans.factory;
    
    public interface BeanNameAware extends Aware {
    
        void setBeanName(String name);
    
    }

    EmbeddedValueResolverAware Embedded值解析器

    复制代码
    package org.springframework.context;
    
    import org.springframework.beans.factory.Aware;
    import org.springframework.util.StringValueResolver;
    
    public interface EmbeddedValueResolverAware extends Aware {
    
        void setEmbeddedValueResolver(StringValueResolver resolver);
    
    }
    复制代码

    EnvironmentAware 环境

    复制代码
    package org.springframework.context;
    
    import org.springframework.beans.factory.Aware;
    import org.springframework.core.env.Environment;
    
    public interface EnvironmentAware extends Aware {
    
        void setEnvironment(Environment environment);
    
    }
    复制代码

    ImportAware 导入相关的

    复制代码
    package org.springframework.context.annotation;
    
    import org.springframework.beans.factory.Aware;
    import org.springframework.core.type.AnnotationMetadata;
    
    public interface ImportAware extends Aware {
    
        void setImportMetadata(AnnotationMetadata importMetadata);
    
    }
    复制代码

    LoadTimeWeaverAware 导入相关的

    复制代码
    package org.springframework.context.weaving;
    
    import org.springframework.beans.factory.Aware;
    import org.springframework.instrument.classloading.LoadTimeWeaver;
    
    public interface LoadTimeWeaverAware extends Aware {
    
        void setLoadTimeWeaver(LoadTimeWeaver loadTimeWeaver);
    
    }
    复制代码

    MessageSourceAware 国际化

    复制代码
    package org.springframework.context;
    
    import org.springframework.beans.factory.Aware;
    
    public interface MessageSourceAware extends Aware {
    
        void setMessageSource(MessageSource messageSource);
    
    }
    复制代码

     NotificationPublisherAware 发送通知的支持

    复制代码
    package org.springframework.jmx.export.notification;
    
    import org.springframework.beans.factory.Aware;
    
    public interface NotificationPublisherAware extends Aware {
    
        void setNotificationPublisher(NotificationPublisher notificationPublisher);
    
    }
    复制代码

    ResourceLoaderAware 资源加载器

    复制代码
    package org.springframework.context;
    
    import org.springframework.beans.factory.Aware;
    import org.springframework.core.io.ResourceLoader;
    
    public interface ResourceLoaderAware extends Aware {
    
        void setResourceLoader(ResourceLoader resourceLoader);
    
    }
    复制代码

    得到结果:

  •  

     

posted @   Arbitrary233  阅读(415)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示