如何自动装配-Aware注入Spring底层组件及原理
发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,本篇内容主要讲解"如何自动装配-Aware注入Spring底层组件及原理",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何自动装配-Aware注入Spri
千家信息网最后更新 2025年02月05日如何自动装配-Aware注入Spring底层组件及原理
本篇内容主要讲解"如何自动装配-Aware注入Spring底层组件及原理",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何自动装配-Aware注入Spring底层组件及原理"吧!
23、自动装配-Aware注入Spring底层组件&原理
Aware 接口,提供了类似回调函数的功能
自定义组件想要使用Spring 容器底层的一些组件(Application Context,Bean Factory);自定义组件需要实现xxxAware接口;在创建对象的时候,会调用接口规定的方法注入相关组件
package org.springframework.beans.factory;public interface Aware {}
23.1 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;}
23.2 ApplicationEventPublisherAware 注入事件派发器
package org.springframework.context;import org.springframework.beans.factory.Aware;public interface ApplicationEventPublisherAware extends Aware { void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher);}
23.3 BeanClassLoaderAware 类加载器
package org.springframework.beans.factory;public interface BeanClassLoaderAware extends Aware { void setBeanClassLoader(ClassLoader classLoader);}
23.4 BeanFactoryAware Bean工厂
package org.springframework.beans.factory;import org.springframework.beans.BeansException;public interface BeanFactoryAware extends Aware { void setBeanFactory(BeanFactory beanFactory) throws BeansException;}
23.5 BeanNameAware Bean名字
package org.springframework.beans.factory;public interface BeanNameAware extends Aware { void setBeanName(String name);}
23.6 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);}
23.7 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);}
23.8 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);}
23.9 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);}
23.10 MessageSourceAware 国际化
package org.springframework.context;import org.springframework.beans.factory.Aware;public interface MessageSourceAware extends Aware { void setMessageSource(MessageSource messageSource);}
23.11 NotificationPublisherAware 发送通知的支持
package org.springframework.jmx.export.notification;import org.springframework.beans.factory.Aware;public interface NotificationPublisherAware extends Aware { void setNotificationPublisher(NotificationPublisher notificationPublisher);}
23.12 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);}
23.13 测试用例
package com.hw.springannotation.beans;import org.springframework.beans.BeansException;import org.springframework.beans.factory.BeanNameAware;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.context.EmbeddedValueResolverAware;import org.springframework.stereotype.Component;import org.springframework.util.StringValueResolver;/** * @Description TODO * @Author hw * @Date 2018/11/28 15:44 * @Version 1.0 */@Componentpublic class Red implements ApplicationContextAware, BeanNameAware, EmbeddedValueResolverAware { private ApplicationContext applicationContext; public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { System.out.println("传入的IOC " + applicationContext); this.applicationContext = applicationContext; } public void setBeanName(String name) { System.out.println("当前bean的名字" + name); } public void setEmbeddedValueResolver(StringValueResolver resolver) { String value = resolver.resolveStringValue("你好${os.name} 我是#{20*20}"); System.out.println("解析的字符串:" + value); }}
运行:
说白了 Aware接口类,就是一个回调类的抽象
到此,相信大家对"如何自动装配-Aware注入Spring底层组件及原理"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
组件
底层
原理
装配
接口
内容
名字
容器
方法
学习
实用
更深
说白了
事件
你好
兴趣
函数
功能
国际
字符
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
局域网电脑怎么连到服务器
服务器是否能放在井里
广电宽带连接不到服务器
h2数据库无法保存数据库
iis信息服务器管理器
vb有关数据库的题目
网络运营者制定网络安全
会计信息化网络安全国家政策
毕节软件开发技术项目实训中心
数据库年龄year函数
虹口区市场软件开发收费标准
软件开发职业圈
域名服务器查询
煤矿网络安全态势感知系统
同学们一起来重视网络安全吧英文
怎么用c 开发软件开发
数据库页面
软件开发费单位开什么条件
杭州网络安全局招聘
dell ssd 服务器
数据库重复导入
如何将服务器电源改到主机使用
数据库怎么创建复合组件
互联网加属于科技创新竞赛吗
盐城有几个服务器
e财通显示服务器连接异常
云游网络技术
房贷还款逾期基础数据库
一级网络安全行为包括哪些
浪潮服务器单块硬盘配置