当前位置: 首页 > article >正文

Springboot的自动装配原理

spring boot是内嵌tomcat,不用自己配置tomcat

一、pom.xml文件

父工程

pom.xml文件中依赖父工程,只有加载了这个父工程,才能定义这个项目是一个springboot脚手架
父工程规定了所有jia包的版本号

启动器

<dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring‐boot‐starter‐web</artifactId>

</dependency>

spring-boot-starter-web
spring-boot-starter:spring-boot场景启动器,帮我们导入了web模块正常运行所依赖的组件。
Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器)---工具包,只需要在项目里面引入这些starter 相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器
启动器的版本也不需要加,因为它是根据父工程版本来变动的。

二、主程序类、主入口类

/** * @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用 */ @SpringBootApplication
public class HelloWorldMainApplication {
        public static void main(String[] args) {
                 // Spring应用启动起来                 SpringApplication.run(HelloWorldMainApplication.class,args);
        }
}
  • @SpringBootApplication注解完成了之前ssm项目的那些配置文件、配置类的工作。
  • Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用;
  • @SpringBootApplication注解里面的东西如下:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration------------------------------------Spring Boot的配置类标注在某个类上,
                                                            表示这是一个Spring Boot的配置类;
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {
   @Filter(type
= FilterType.CUSTOM, classes
= TypeExcludeFilter.class),
   @Filter(type
= FilterType.CUSTOM, classes
= AutoConfigurationExcludeFilter.class)

})public
@interface SpringBootApplication {
  • @SpringBootConfiguration:Spring Boot的配置类标注在某个类上,表示这是一个Spring Boot的配置类;
  • @Configuration:配置类上来标注这个注解,这个与@SpringBootConfiguration注解是一样的。
  • @EnableAutoConfiguration:开启自动配置功能(将第三方的东西,而且springboot可以整合,进行自动装配,不需要在配置文件中进行装配)
点进代码后,如下:
@AutoConfigurationPackage
@Import(EnableAutoConfigurationImportSelector.class)
public
@interface EnableAutoConfiguration {
@AutoConfigurationPackage:自动配置包 @Import(AutoConfigurationPackages.Registrar.class): Spring的底层注解@Import,给容器中导入一个组件;导入的组件由AutoConfigurationPackages.Registrar.class; 将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器;
@Import(EnableAutoConfigurationImportSelector.class); 给容器中导入组件?EnableAutoConfigurationImportSelector:导入哪些组件的选择器; 将所有需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中;会给容器中导入非常多的自动配置类(xxxAutoConfiguration);就是给容器中导入这个场景需要的所有组件,并配置好这些组件;
springboot比ssm好在哪?
约定大于配置,springboot是一个脚手架,使用起来比ssm更方便,使用自动装配,将第三方工具进行了整合,通过EnableAutoConfiguration下面的那些AutoConfiguration进行了整合。

热部署

文件修改过后需要重新启动主程序,添加了依赖,如下:,就解决了这个问题
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-devtools</artifactId> 
    <optional>true</optional> 
</dependency>

配置文件

全局的配置文件有 两种:名称是固定的,可以同时存在。
application.properties、application.yml。
配置文件的 作用 :修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好。

YAML语法

基本语法

  • k:(空格)v:表示一对键值对(空格必须有);
  • 以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的
属性和值也是大小写敏感;

http://www.kler.cn/a/509318.html

相关文章:

  • 第23篇 基于ARM A9处理器用汇编语言实现中断<五>
  • 麒麟系统中删除权限不够的文件方法
  • 什么是 OpenResty
  • python编程-OpenCV(图像读写-图像处理-图像滤波-角点检测-边缘检测)角点检测
  • springboot基于微信小程序的智慧小区管理系统
  • 基于SSM实现的乡村振兴文化平台系统功能实现六
  • PyTorch使用教程(2)-torch包
  • C# 多线程 Task TPL任务并行
  • 七大设计原则之里氏替换原则
  • 2025西湖论剑-babytrace
  • PyTest自学-认识PyTest
  • CVPR 2024 人体姿态估计总汇(3D人体、手语翻译和人体网格恢复/重建等)
  • MySQL8数据库全攻略:版本特性、下载、安装、卸载与管理工具详解
  • 当前目录不是一个git仓库/远程仓库已经有了一些你本地没有的更改
  • flutter 常用UI组件
  • 【JVM-9】Java性能调优利器:jmap工具使用指南与应用案例
  • 数据结构-ArrayList和顺序表
  • SSM课设-学生管理系统
  • 免费送源码:Java+ssm+MySQL 基于PHP在线考试系统的设计与实现 计算机毕业设计原创定制
  • 青少年编程与数学 02-007 PostgreSQL数据库应用 07课题、表的操作