Spring Aware容器感知技术

转载自 Spring Aware容器感知技术

 

Spring Aware是什么

Spring提供Aware接口能让Bean感知Spring容器的存在,即让Bean可以使用Spring容器所提供的资源。

Spring Aware的分类

几种常用的Aware接口如下。

Aware接口说明
ApplicationContextAware能获取Application Context调用容器的服务
ApplicationEventPublisherAware应用事件发布器,可以用来发布事件
BeanClassLoaderAware能获取加载当前Bean的类加载器
BeanFactoryAware能获取Bean Factory调用容器的服务
BeanNameAware能获取当前Bean的名称
EnvironmentAware能获取当前容器的环境属性信息
MessageSourceAware能获取国际化文本信息
ResourceLoaderAware获取资源加载器读取资源文件
ServletConfigAware能获取到ServletConfig
ServletContextAware能获取到ServletContext

更多的可以看它的继承图。

Spring Aware的使用

如要获取容器中的某个Bean,可以继承ApplicationContextAware,让这个Bean拥有调用容器服务的能力。

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;public class SpringAppContext implements ApplicationContextAware {private static ApplicationContext applicationContext = null;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {if (SpringAppContext.applicationContext == null) {SpringAppContext.applicationContext = applicationContext;}}public static ApplicationContext getApplicationContext() {return applicationContext;}public static Object getBean(String name) {return getApplicationContext().getBean(name);}public static <T> T getBean(Class<T> clazz) {return getApplicationContext().getBean(clazz);}public static <T> T getBean(String name, Class<T> clazz) {return getApplicationContext().getBean(name, clazz);}}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330452.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

json详解

JSON的全称是”JavaScript Object Notation”&#xff0c;意思是JavaScript对象表示法&#xff0c;它是一种基于文本&#xff0c;独立于语言的轻量级数据交换格式。XML也是一种数据交换格式&#xff0c;为什么没有选择XML呢&#xff1f;因为XML虽然可以作为跨平台的数据交换格式…

Error in nextTick: “TypeError: Cannot read properties of undefined (reading ‘clearValidate‘)“

我在打开对话框清除表单校验的时候报了这个错 我的解决办法是加个if判断有没有 这是原来的 加个if

ACM训练题6

ASCII码排序 Problem Description INPUT 输入三个字符后&#xff0c;按各字符的ASCII码从小到大的顺序输出这三个字符。 OUTPUT 对于每组输入数据&#xff0c;输出一行&#xff0c;字符中间用一个空格分开. 问题连接&#xff1a;https://vjudge.net/problem/hdu-2000 AC…

Spring Enable*高级应用及原理

转载自 Spring Enable*高级应用及原理 Enable* 之前的文章用到了一些Enable*开头的注解&#xff0c;比如EnableAsync、EnableScheduling、EnableAspectJAutoProxy、EnableCaching等&#xff0c;Enable表示开启/允许一项功能。 Enable*工作原理 我们只需要几个很简单的注解就…

ACM训练题7

计算球体积 Problem Description 根据输入半径输出球的体积 INPUT 输入数据有多组&#xff0c;每组占一行&#xff0c;每行包括一个实数&#xff0c;表示球的半径。 OUTPUT 输出对应的球的体积&#xff0c;对于每组输入数据&#xff0c;输出一行&#xff0c;计算结果保留…

JSON与JS对象的区别

和一些同学一样&#xff1a;总是感觉json对象(其实json不是对象)和js对象的字面量表示法相同&#xff0c;最近学习json&#xff0c;真心搞不懂&#xff0c;js对象和json有什么区别&#xff1f;就是感觉json的key要用” “括起来&#xff0c;但是js对象的字面量表示法不需要。  …

Spring Boot开启的2种方式

转载自 Spring Boot开启的2种方式Spring Boot依赖 使用Spring Boot很简单&#xff0c;先添加基础依赖包&#xff0c;有以下两种方式 1. 继承spring-boot-starter-parent项目 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-b…

JSON | JSON字符串和JSON对象的区别

最近在学习Vue.js&#xff0c;里面有个存储、读取本地缓存的功能&#xff0c;不停地用JSON.parse()&#xff0c;和JSON.stringify()来转换JSON字符串和JSON对象。自己有点晕&#xff0c;不明白两者的区别&#xff0c;看起来感觉是一样的&#xff0c;也不知道为什么一定要转换才…

Spring Boot Starters启动器

转载自 Spring Boot Starters启动器 Starters是什么&#xff1f; Starters可以理解为启动器&#xff0c;它包含了一系列可以集成到应用里面的依赖包&#xff0c;你可以一站式集成Spring及其他技术&#xff0c;而不需要到处找示例代码和依赖包。如你想使用Spring JPA访问数据库&…

数列有序

Promble Description 有n(n<100)个整数&#xff0c;已经按照从小到大顺序排列好&#xff0c;现在另外给一个整数x&#xff0c;请将该数插入到序列中&#xff0c;并使新的序列仍然有序。 INPUT 输入数据包含多个测试实例&#xff0c;每组数据由两行组成&#xff0c;第一行…

Spring Boot自动配置原理、实战

转载自 Spring Boot自动配置原理、实战 Spring Boot自动配置原理 Spring Boot的自动配置注解是EnableAutoConfiguration&#xff0c;从上面的Import的类可以找到下面自动加载自动配置的映射。 org.springframework.core.io.support.SpringFactoriesLoader.loadFactoryNames(Cla…

ES6 Map对象的使用

转自&#xff1a; https://blog.csdn.net/u012664198/article/details/97373751 Map对象保存键值对,任何值(对象或者原始值) 都可以作为一个键或一个值 key和value可以是字符串等数据类型&#xff0c;也可以是对象&#xff0c;函数&#xff0c;NaN。 set&#xff1a;insert ke…

水仙花数

Problem Description 春天是鲜花的季节&#xff0c;水仙花就是其中最迷人的代表&#xff0c;数学上有个水仙花数&#xff0c;他是这样定义的&#xff1a; “水仙花数”是指一个三位数&#xff0c;它的各位数字的立方和等于其本身&#xff0c;比如&#xff1a;1531^35^33^3。 现…

JDBC元数据操作(一)-- DatabaseMetaData接口详解

转自&#xff1a; https://blog.csdn.net/chen_zw/article/details/18816599 1. 前言 在JDBC技术规范中&#xff0c;提供了Connection&#xff0c;Statement,ResultSet这三个开发过程中经常用到的接口。针对与每个接口&#xff0c;JDBC规范提供了相应的接口描述对象&#…

Spring Boot核心配置

转载自 Spring Boot核心配置 启动类 在包根目录下添加启动类&#xff0c;必须包含main方法&#xff0c;再添加Spring Boot启动方法&#xff1a; SpringApplication.run(SampleController.class, args); 或者流式API new SpringApplicationBuilder().run(args); 下面是一个典型的…

空心三角形

Problem Description 把一个字符三角形掏空&#xff0c;就能节省材料成本&#xff0c;减轻重量&#xff0c;但关键是为了追求另一种视觉效果。在设计的过程中&#xff0c;需要给出各种花纹的材料和大小尺寸的三角形样板&#xff0c;通过电脑临时做出来&#xff0c;以便看看效…

Dom4j完整教程详解

转自&#xff1a; https://blog.csdn.net/qq_41860497/article/details/84339091 目录 1、DOM4J简介 2、XML文档操作1 2.1、读取XML文档&#xff1a; 2.2、获取根节点 2.3、. 新增一个节点以及其下的子节点与数据 2.4、 写入XML文件 2. 5、 遍历xml节点 2.6、创建xml文件 2.…

Spring Boot功能实战

转载自 Spring Boot功能实战 添加web功能启动器 添加了Spring Boot基础依赖后&#xff0c;如要使用web mvc功能&#xff0c;只需要添加如下启动器即可&#xff0c;Spring Boot会自动装配web功能。 <dependencies><dependency><groupId>org.springframework.b…

scanf用法总结

转载自&#xff1a;http://blog.csdn.net/21aspnet/article/details/174326函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,…]);scanf()函数是通用终端格式化输入函数&#xff0c;它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类…

Spring Boot Runner启动器

转载自 Spring Boot Runner启动器 Runner启动器 如果你想在Spring Boot启动的时候运行一些特定的代码&#xff0c;你可以实现接口 ApplicationRunner或者 CommandLineRunner&#xff0c;这两个接口实现方式一样&#xff0c;它们都只提供了一个run方法。 CommandLineRunner&…