当前位置: 首页> 文旅> 文化 > 虚拟主机管理_表情生成器在线制作gif_西安百度网站排名优化_友链交易交易平台

虚拟主机管理_表情生成器在线制作gif_西安百度网站排名优化_友链交易交易平台

时间:2025/7/9 0:50:10来源:https://blog.csdn.net/zhangfuping123456789/article/details/146180340 浏览次数:1次
虚拟主机管理_表情生成器在线制作gif_西安百度网站排名优化_友链交易交易平台

目的:从底层源码角度分析 Spring Boot 配置类以及自动装载的底层原理

文章目录

      • 1. Spring Boot 配置类实现自动装载
        • 1.1 @Configuration注解
        • 1.2 @Configuration 注解完成 bean 注入流程图
        • 1.3 @ConfigurationProperties注解赋值
      • 2. Spring Boot的核心机制:自动装配
        • 2.1 @SpringBootConfiguration注解
        • 2.2 @EnableAutoConfiguration注解
        • 2.3 @ComponentScan 注解
        • 2.4 总结

1. Spring Boot 配置类实现自动装载

在讲 spring 时,spring.xml 中配置的 bean:在进行依赖注入时,通过 ref 属性来进行,也就是手动装载;然后就是自动装载(2种);然后又讲到没有配置文件是怎么装载(通过 @Autowired注解);

这里再来说一个没有配置文件怎么装载(也就是 spring boot 中是如何进行依赖注入的)。

1.1 @Configuration注解

Spring Boot 已经去掉了 XML 文件,那么在 Spring Boot 中是如何进行 bean 依赖注入呢?----> 在 Spring Boot 中,通过配置类的方式来完成 bean 的依赖注入。配置类顾名思义就是专门写一个 Java 类用来做配置,以取代 XML 配置文件的方式,这里的配置类不需要继承任何类,也不需要实现任何接口,只需要在类定义处添加 @Configuration 注解即可。接下来我们通过配置类的形式完成Account 对象的注入。

1、创建配置类 BeanConfiguration,在类定义处添加 @Configuration 注解,同时定义一个返回值为 Account 的方法,并在方法定义处添加 @Bean 注解,代码如下所示。

在这里插入图片描述

配置类可以把它比作 XML 文件:类就等同于 XML 文件本身,类中添加了 @Bean 注解的方法就等同于 XML 文件中的 bean 标签,方法返回的对象就是要注入到容器中的 bean。

2、测试:

在这里插入图片描述
发现: 成功从容器中取出了 account 对象,这里是通过 beanName 取值的,所以可以得出结论,当前的 Account 对象 beanName 为 account,我们并没有手动设置 beanName,所以这个 beanName 取的是默认值,那么这里的默认值是如何设置的呢? 并非是取返回值类名首字母小写,而是方法名

1.2 @Configuration 注解完成 bean 注入流程图

1、启动 ApplicationContext 的时候传入配置类。

2、判断配置类是否添加了 @Configuration 注解,如果没有添加则不做处理,如果添加了则解析该配置类。

3、遍历配置类的所有方法,判断这些方法是否添加了 @Bean 注解,如果没有添加则不做处理,如果添加了则说明该方法的返回值就是需要注入的 bean。

4、通过反射机制执行该方法,获得返回值,同时获取方法名。

5、将方法名和返回值以 key-value 的形式存入容器中,供开发者调用。

流程图如下:

在这里插入图片描述

1.3 @ConfigurationProperties注解赋值

该注解的作用是在 Spring Boot 项目中直接读取 application.yml 配置文件中的数据并赋值给 bean 中的成员变量。

1、创建一个实体类,添加 @ConfigurationProperties 注解, 并通过 p

关键字:虚拟主机管理_表情生成器在线制作gif_西安百度网站排名优化_友链交易交易平台

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: