大道至简 初识springboot
创始人
2024-05-24 18:04:23
0

参考文档:springboot官方中文文档
开发工具:IntelliJ IDEA

入门

springboot介绍

Spring Boot帮助你创建可以运行的独立的、基于Spring的生产级应用程序。 我们对Spring平台和第三方库采取了有主见的观点,这样你就能以最少的麻烦开始工作。 大多数Spring Boot应用程序只需要很少的Spring配置。你可以使用Spring Boot来创建Java应用程序,可以通过使用 java -jar 或更传统的war部署来启动。

我们的主要目标是:
1、为所有的Spring开发提供一个根本性的更快、更广泛的入门体验。
2、开箱即用,但随着需求开始偏离默认值,请迅速摆脱困境。
3、提供一系列大类项目常见的非功能特性(如嵌入式服务器、安全、度量、健康检查和外部化配置)。
4、绝对没有代码生成(当不以原生镜像为目标时),也不要求XML配置。

系统要求

springboot2.x 需要java1.8+
Spring Boot 3.x 需要 Java 17 ,并且可以兼容到Java 19,包括Java 19。还需要 Spring Framework 6.0.4 或以上版本。
为以下构建工具提供了明确的构建支持。
构建工具 版本
Maven 3.5+
Gradle 7.x (7.5 or later)
Servlet 容器

Spring Boot支持以下嵌入式Servlet容器。

Servlet 容器Servlet 版本
Tomcat 10.05.0
Jetty 11.05.1
Undertow 2.2 (Jakarta EE 9 variant)5.0

你也可以将Spring Boot应用部署到任何兼容Servlet 5.0+的容器中。

创建项目

使用idea创建

打开idea —》file—》new----》project —》maven
在这里插入图片描述
项目创建之后创建主类(启动类)
在这里插入图片描述
编辑POM
在这里插入图片描述继承parent可有效处理开发过程中springboot其他依赖包版本冲突问题,在使用springboot其他的依赖时不需要注明版本,只需要引入依赖即可,如果需要更换版本,在当前pom中添加
如:
在这里插入图片描述默认加载mysql是8.0.28,要换成6.0.2,重写即可
在这里插入图片描述

项目结构
在这里插入图片描述
编写控制器
在这里插入图片描述
启动项目,访问:localhost:8080/hello
在这里插入图片描述
注解说明:

@RestController 是
@Controller和@RequestBody 的组合
现在普遍开发都是前后分离式的开发,不返回页面(html、vue、jsp),所以可直接用该注解,如果需要返回页面和非页面数据则分开使用
@SpringBootApplication是
@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan三个注解的组合
@SpringBootApplication标识是springboot项目,是spingboot项目的主类(启动类)

默认扫描的包是主类所在的包路径下的子类或者更深层级的,如果更改扫描包路径,添加注解参数@SpringBootApplication(scanBasePackages = “com.wdz”),即可
在这里插入图片描述

springboot的自动装配

springboot项目中使用到的spring-boot-start-*
默认配置都在org.springframework.boot.autoconfigure包下在这里插入图片描述
在使用的时候直接在pom中添加依赖,配置文件中添加对应配置即可,
自动配置是按需加载的,只有在pom中添加过才会装配

配置绑定

使用:@Component+@ConfigurationProperties(prefix = “***”)

在这里插入图片描述
配置文件:
在这里插入图片描述

测试类
在这里插入图片描述
测试结果:
在这里插入图片描述

使用@EnableConfigurationProperties注解进行绑定

在这里插入图片描述
在这里插入图片描述
一样可以访问到配置数据

自动装配

复核注解 @SpringBootApplication

包含:
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan

@SpringBootConfiguration

它的实现是@Configuration,注明使用类是一个配置类

@ComponentScan

主要作用是包扫描类,默认扫描的包是从主类同级别的位置开始

@EnableAutoConfiguration

主要包含:
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})

@AutoConfigurationPackage

在这里插入图片描述
AutoConfigurationPackage引入了一个Registrar的类,然而这个类在启动的时候会把扫描路径下的类注册到容器中
在这里插入图片描述##### @Import({AutoConfigurationImportSelector.class})
AutoConfigurationImportSelector这个类下的方法:
在这里插入图片描述
其中:
List configurations = this.getCandidateConfigurations(annotationMetadata, attributes);
获取所有的候选配置,然后
在这里插入图片描述
对候选配置进行增减操作(排除指定的类或者加载指定的类)

条件装配(满足指定条件之后才会正式的添加到容器中)

自动装配主要功能还是各个配置类上的注解:主要以Conditional开头的注解。
大部分配置都是一用户配置为主,如果没有配置springboot才会使用默认的配置
在这里插入图片描述
指定包含某些类,某些配置的时候加载等
如AOP:
在这里插入图片描述
包含spring.aop 开头的配置才会装配,不包含的话当前类的方法都不会加载
在这里插入图片描述
在这里插入图片描述

自主配置提示

在yml配置文件中自定义的配置没有联想提示,可添加依赖

org.springframework.bootspring-boot-configuration-processor

由于当前依赖生产环境中不需要,所以添加打包排除
org.springframework.bootspring-boot-maven-pluginorg.springframework.bootspring-boot-configuration-processor 

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...