大道至简 初识springboot

参考文档: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配置文件中自定义的配置没有联想提示,可添加依赖

<dependency>
   <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
</dependency>
由于当前依赖生产环境中不需要,所以添加打包排除
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
              <excludes>
                  <exclude>
                      <groupId>org.springframework.boot</groupId>
                      <artifactId>spring-boot-configuration-processor</artifactId>
                  </exclude>
              </excludes>
            </configuration> 
        </plugin>
    </plugins>
</build>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值