Spring注解@Import详细使用说明
文章目录
- 一、@Import解释
- 二、@Import有三种使用方法
- 1、直接填class数组方式
- 2、实现ImportSelector接口
- 3、实现ImportBeanDefinitionRegistrar接口
写在前面:
我是「境里婆娑」。我还是从前那个少年,没有一丝丝改变,时间只不过是考验,种在心中信念丝毫未减,眼前这个少年,还是最初那张脸,面前再多艰险不退却。
写博客的目的就是分享给大家一起学习交流,如果您对 Java感兴趣,可以关注我,我们一起学习
前言:@Import作用是将某个类或者第三方jar包中类加载到Spring容器中,以便我们能在容器中使用。
一、@Import解释
- @Import只能用在类上
- @Import通过快速导入的方式实现把实例加入spring的IOC容器中
- @Import注解可以用于导入第三方包
二、@Import有三种使用方法
@Import的三种用法:
1、直接填class数组方式
直接填对应的class数组,class数组可以有0到多个
@Import({Person.class,Car.class)
@Configuration
public class MyConfig {}
启动工程运行结果:
import的bean都将加入到spring容器中,这些在容器中bean名称是该类的全类名
2、实现ImportSelector接口
这种方式要实现ImportSelector接口。
创建MyImportSelector并实现ImportSelector接口
public class MyImportSelector implements ImportSelector {@Overridepublic String[] selectImports(AnnotationMetadata importingClassMetadata) {Set<String> annotationTypes = importingClassMetadata.getAnnotationTypes();return new String[]{"com.sl.entity.Car"};}
}
将此实现类MyImportSelector添加到容器中
@Import({Person.class,MyImportSelector.class})
@Configuration
public class MyConfig {}
启动工程运行结果:
实现接口的selectImports方法中需要注意三点
- 返回值: 实际上要导入到容器中的组件全类名
- 参数: AnnotationMetadata表示当前被@Import注解给标注的所有注解信息
- 需要注意的是selectImports方法可以返回空数组但是不能返回null,否则会报空指针异常!
3、实现ImportBeanDefinitionRegistrar接口
创建MyImportBeanDefinitionRegistrar接口
public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {@Overridepublic void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(Car.class);registry.registerBeanDefinition("car",rootBeanDefinition);}
}
将此实现类MyImportBeanDefinitionRegistrar添加到容器中
@Import({Person.class,MyImportSelector.class,MyImportBeanDefinitionRegistrar.class})
@Configuration
public class MyConfig {}
启动工程运行结果:
registerBeanDefinitions参数解释:
- annotationMetadata 和之前的ImportSelector参数一样都是表示当前被@Import注解给标注的所有注解信息
- registry第二个参数表示用于注册定义一个bean
以上三种用法方式皆可混合在一个@Import中使用,特别注意第一种和第二种都是以全类名的方式注册,而第三中可自定义方式
Spring注解@Import详细使用说明相关推荐
- Spring 注解 @Qualifier 详细解析
1. 概述 今天带你了解一下 Spring 框架中的 @Qualifier 注解,它解决了哪些问题,以及如何使用它.我们还将了解它与 @Primary 注解的不同之处. 2. 痛点 使用 @Autow ...
- spring注解之@Bean 的用法总结
@Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里.添加的bean的id为方法名 1 基于xml方式bean使用回顾 2 注解@ ...
- spring注解详解与用法(总览)
这篇文章收集了我写的所有的spring注解的详细说明与用法,点击可以跳转到对应文章,此文章会不断更新 spring注解详解与用法(1)最基础也是最常见的如下所示,详情点击这里 @Controller/ ...
- Spring高级之注解@Import注解、ImportSelector、ImportBeanDefinitionRegistrar详解(超详细)
定义/作用 @Import注解只能作用在类上,一种使用场景是在spring注解驱动开发环境下与配置类配合使用的,其作用是引用其他配置类.使得我们可以和早起的基于XML配置文件开发那样.使用不同的配置类 ...
- SPRING注解驱动开发-雷神课程超详细笔记
SPRING注解驱动开发-雷神课程超详细笔记 时间:2021-03-21 2022-04-06更新:最近翻起一年多前写的笔记复习,还是收获颇多,很多当时无法理解的知识现在慢慢能理解了,可能是工作一年的 ...
- 火眼金睛,看透Spring处理Import注解的全过程
文章目录 一.前言 二.Enable前缀的注解上面有@Import注解 三.常见的四种Import注解用法(根据类Abc的不同类型) 四.Spring处理@Import注解的过程(全文重点,对应四种@ ...
- Spring注解之@Import用法解析
前言:最近在回顾阅读Springboot源码时发现框架层面大量使用@Import注解,特别是Springboot自动装配机制更是大量使用该注解,搜索部分结果图如下.简单来说就是Springboot中用 ...
- java的 import注解_[java]一分钟学会spring注解之@Import注解
今天主要从以下几方面来介绍一下@Import注解 @Import注解是什么 @Import的三种使用方式 1,@Import注解是什么 通过导入的方式实现把实例加入springIOC容器中 2,@Im ...
- Spring常用注解的详细介绍(包你学明白)
目录 1. 为什么要使用注解? 2. 什么是注解? 3. 在Spring中使用注解的前期准备 4. @Component注解的详细介绍 5. @Value注解的详解介绍 6. @Autowired ...
最新文章
- 1.spring:helloword/注入/CDATA使用/其他Bean/null级联/p命名空间
- python【力扣LeetCode算法题库】1103- 分糖果 II
- 常用的Net Command
- Spring 的 BeanFactory 和 FactoryBean 傻傻分不清?
- 从软件工程看,语言只是工具
- Windows_API_函数 参考大全
- ODBG常用快捷键总结
- UI设计灵感|购物界面更有吸引力
- 搭建一个项目的准备工作
- linux集群启动脚本,Hadoop2.2.0集群启动和停止Shell脚本
- 手機短信阻擊中國化工項目
- numpy.argmin 使用
- R语言—简介、安装、包(package)的安装与加载
- 身份证算法15位转换为18位
- 5 步教你将 MRS 数据导入 DWS
- 兄弟Brother DCP-1519 驱动
- 爬取贝壳租房信息存储到mongoDB
- android 如何绕过签名校验
- Kafka SASL 安全认证
- XP系统启动时滚动条总是时间很长
热门文章
- mdl格式是什么软件生成的_Mac 上有什么好的视频格式转换软件?
- python中定义函数常用关键字_Python 中定义函数的关键字是 _________________ 。_学小易找答案...
- JVM实战与原理---Class文件结构
- xml 属性value换行显示_python 标准库之xml.etree.ElementTree
- 直播报名 | 零基础 零代码 AI智能营销应用现场教学
- python杂记-读取png图像文件头数据
- 趣学python3(2)-添加以数字文字形式使用下划线的功能,以提高可读性
- CF、FM、DSSM、DeepFM等这些推荐模型的原理以及使用场景是什么?
- 【深度学习】预训练的卷积模型比Transformer更好?
- 【职场】如何才能成功的创业,创业成功的本质是什么