@Import注解作用

@Import注解作用

理解springboot自动装配时,发现@SpringBootApplication注解下的@EnableAutoConfiguration注解头上有一个@Import注解。

关于这个注解的作用,上网查找后发现理解的不是很明白,于是写了下面的Demo去理解。

  • 两个pojo类:
public class Person {
}public class Student {
}
  • 测试类
@Configuration
@Import({Student.class})
public class ImportConfig {@Beanpublic Person person(){return new Person();}public static void main(String[] args) {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ImportConfig.class,ApplicationTestConfig.class);String[] names = context.getBeanDefinitionNames();Student student = ApplicationTestConfig.getApplication(Student.class);System.out.println("===="+student);for (String name : names) {System.out.println(name);}}}
  • ApplicationTestConfig类如下:
@Configuration
public class ApplicationTestConfig implements ApplicationContextAware {private static ApplicationContext applicationContext;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.applicationContext = applicationContext;}public static <T> T getApplication(Class<T> clazz){return applicationContext.getBean(clazz);}}
  • 测试结果
====com.yjh.pojo.Student@649bec2e
org.springframework.context.annotation.internalConfigurationAnnotationProcessor
org.springframework.context.annotation.internalAutowiredAnnotationProcessor
org.springframework.context.annotation.internalCommonAnnotationProcessor
org.springframework.context.event.internalEventListenerProcessor
org.springframework.context.event.internalEventListenerFactory
importConfig
applicationTestConfig
com.yjh.pojo.Student
person

综上,其实@Import注解的作用就是往当前类注入一个Bean,方便当前类的后续方法调用该Bean,跟Bean的作用差不多。

不过@Import注解除了可以注入普通的Bean外,也可以注入实现了ImportSelector接口和ImportBeanDefinitionRegistrar接口的类。

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

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

相关文章

c++ stl 之 vector

#include <iostream> #include <vector>int main() {// 创建一个空的 vectorstd::vector<int> myVector;// 向 vector 中添加元素myVector.push_back(10);myVector.push_back(20);myVector.push_back(30);// 遍历 vector 并打印元素std::cout << "…

【InternLM 笔记】使用InternLM2-chat-1.8b制作时事问答知识库

环境版本 模型版本&#xff1a; InternLM2-chat-1.8b 准备环境 还是使用InternStudio进行操作 拉取环境 /root/share/install_conda_env_internlm_base.sh internlm开始实践 创建工作目录 cd ~ mkdir temp cd temp下载模型 import torch from modelscope import snapsh…

Unity DropDown 组件 详解

Unity版本 2022.3.13f1 Dropdown下拉菜单可以快速创建大量选项 一、 Dropwon属性详解 属性&#xff1a;功能&#xff1a;Interactable此组件是否接受输入&#xff1f;请参阅 Interactable。Transition确定控件以何种方式对用户操作进行可视化响应的属性。请参阅过渡选项。Nav…

MySQL 核心模块揭秘 | 09 期 | 二阶段提交 (3) flush、sync、commit 子阶段

1. 写在前面 经过上一篇文章的介绍&#xff0c;我们已经对 commit 阶段有了整体的认识。 这篇文章&#xff0c;我们一起进入各子阶段&#xff0c;看看它们都会干点什么&#xff0c;以及会怎么干。 为了方便理解&#xff0c;我们假设有 30 个事务&#xff0c;它们对应的用户线…

Titanic数据分析项目——Kaggle数据分析项目实战1

目前预测准确度达到77.511%, 会持续优化并且更新。 一、特征工程&#xff1a; 1、先对缺失值进行填充&#xff0c;先找到缺失值的位置&#xff0c;数值型数据填充众数&#xff0c;字符数据或者是离散型数据则填充出现最多的数据。 2、标准化数值型数据&#xff0c; 根据标准化…

Vue使用L2Dwidget

1、在根文件index.html中引入live2dw/lib/L2Dwidget.min.js 下载模型的文件&#xff0c;放在本地或者cdn 切换不同的模型 模型地址&#xff1a;https://github.com/xiazeyu/live2d-widget-models showLive2d(name: String) {var live2dWidget document.querySelector("…

大数据开发(Hive面试真题-卷三)

大数据开发&#xff08;Hive面试真题&#xff09; 1、Hive的文件存储格式都有哪些&#xff1f;2、Hive的count的用法&#xff1f;3、Hive得union和unionall的区别&#xff1f;4、Hive的join操作原理&#xff0c;left join、right join、inner join、outer join的异同&#xff1…

专升本 C语言笔记-01 printf 占位符 转义符

目录 一.printf()函数简介 1.1作用 将格式化后的字符串输出(打印东西) 1.2函数原型 1.3返回值 二.常见占位符 2.1.占位符的使用 2.2.格式修饰符 2.3.输出格式说明 三.转义字符 一.printf()函数简介 1.1作用 将格式化后的字符串输出(打印东西) printf…

Python数值方法在工程和科学问题解决中的应用

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 随着计算机技术的不断发展&#xff0c;Python作…

sqlserver语句中差集、并集、交集的用法

1、并集UNIONUNION 将两个查询的结果合并为一个结果集&#xff0c;并去除重复的行。 SELECT column1, column2 FROM Table1 UNION SELECT column1, column2 FROM Table2;2、交集INTERSECTINTERSECT 返回两个查询的结果中相同的行。 SELECT column1, column2 FROM Table1 IN…

C++之std::move

std::move 是C标准库中的一个函数模板&#xff0c;用于将其参数转换为右值引用。这通常用于移动语义&#xff0c;用于在避免不必要的复制的情况下&#xff0c;将资源&#xff08;例如内存、文件句柄等&#xff09;从一个对象转移到另一个对象。std::move 是C11引入的特性。 用…

【Python】新手入门学习:详细介绍开放封闭原则(OCP)及其作用、代码示例

【Python】新手入门学习&#xff1a;详细介绍开放封闭原则&#xff08;OCP&#xff09;及其作用、代码示例 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyT…

在Java中,Cloneable接口的作用,抛出CloneNotSupportedException的原因

文章目录 一、Cloneable接口的作用二、Cloneable接口的用法三、Cloneable的标记作用实现原理 一、Cloneable接口的作用 继承Cloneable接口并调用super.clone()是为了确保对象的克隆行为符合Java的规范。尽管Cloneable是一个空接口&#xff0c;没有定义任何方法&#xff0c;但如…

MQTT Topic通配符

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…

如何不依赖Unity直接解压unitypackage的内容

使用场景 我们都知道unity的资源导出是导出成.unitypackage文件,如果要里面的内容,得打开Unity,将unitypackage导入进去才能看到里面的内容。 但是很多时候我们下了几十个unitypackage资源包,又不清楚好不好用,而且导入之后编译特别慢,unity又不提供批量解压的功能,所…

雷达图相关

1.中间显示数字 title: {text: 88,x: center,y: center,textStyle: {color: #333,fontWeight: bolder,fontSize: 64,} } 2.提示信息 tooltip: {trigger: item, // 当鼠标悬浮在某个数据项上时触发}, 3.修改中间颜色 默认&#xff1a; splitArea: {areaStyle: {color: [rgba(…

三分钟搞定普通函数和箭头函数的this指向问题

记住两个口诀&#xff1a; 普通函数的this是&#xff1a;谁调用这个函数&#xff0c;函数的this就指向谁 箭头函数的this是&#xff1a;箭头函数定义时的执行上下文的this是谁&#xff0c;箭头函数的this就指向谁 实例代码&#xff1a; var name222var b {name:111,fn:()>{…

网康科技 NS-ASG 应用安全网关 SQL注入漏洞复现(CVE-2024-2330)

0x01 产品简介 网康科技的NS-ASG应用安全网关是一款软硬件一体化的产品,集成了SSL和IPSec,旨在保障业务访问的安全性,适配所有移动终端,提供多种链路均衡和选择技术,支持多种认证方式灵活组合,以及内置短信认证、LDAP令牌、USB KEY等多达13种认证方式。 0x02 漏洞概述 …

OPENCV(0-1之0.1)

OPENCV-0.1 学习安排计算机视觉简介是什么&#xff1f;应用领域基础概念 OpenCV简介历史背景和主要贡献者支持的语言和平台主要模块和功能 安装(windows_python)pip安装验证安装&#xff08;记得安装jupyter&#xff09; 第一个OpenCV程序实践练习 官方文档 学习安排 计算机视…

数据同步方案

目录 1 需求概述 1&#xff09;时间戳 2&#xff09;触发器 3&#xff09;差异更新 4&#xff09;日志解析 2 产品实施 1&#xff09;数据同步 2&#xff09;同步日志 3&#xff09;流量统计 4&#xff09;数据比对 1 需求概述 数据同步用于将不同数据库系统产生的数…