SpringBoot学习笔记1-入门篇

本文档概述了SpringBoot的主要目标,包括简化Spring应用的初始搭建及开发过程。介绍了SpringBoot的系统要求,如Java版本、构建工具和Servlet容器。详细阐述了安装、更新及使用SpringBoot进行开发的步骤,特别是依赖管理、主程序类和配置类的创建。此外,还讨论了开发者工具DeveloperTools的功能,如自动重启和缓存控制。

目录

前言

一. Spring Boot的目标

二. Spring Boot的系统要求

三. Spring Boot的安装

四. Spring Boot的更新

五. 使用Spring Boot开发

1. 依赖管理

2. 代码构建之主程序应用程序类

3. 配置类

六. 运行Spring Boot程序

七. 开发者工具-Developer Tools

1. 默认属性值中的缓存

2. 自动重启


前言

以spring官方文档为基础,官方地址:https://spring.io/projects/spring-boot#learn

目前官方正式版本最新为:2.5.3(这个学习笔记系列基本是以翻译为主,不用浪费时间期望获取更多。更多是给自己看官方文档做的的一个笔记)

当前篇的内容:概括总结翻译了springboot文档的前6章

 

一. Spring Boot的目标

Spring Boot旨在提供一种快速使用Spring进行开发的体验
开箱即用,提供一系列项目通用的非功能性特性(例如嵌入式服务器、安全、质量、健康检查和外部化配置)
不需要代码生成,也不需要XML配置

二. Spring Boot的系统要求

当前最新版本是Spring Boot 2.5.3 ,需要Java 8,并且兼容 Java 16(包括 Java 16)。还需要Spring Framework 5.3.9或更高版本。

构建工具:Maven(3.5+)、Gradle(6.8.x, 6.9.x, and 7.x)
Servlet容器:Spring Boot支持以下内嵌servlet容器:Tomcat 9.0,Jetty 9.4,Jetty 10.0,Undertow 2.0(当然,除了内嵌,Spring Boot也支持将其部署到其他Servlet3.1+的兼容容器中)

三. Spring Boot的安装

安装前,确认Java JDK1.8+版本已经安装。命令行确认:java -version
(1)Maven安装:需要Maven3.3+(命令行确认:mvn -v)
(2)Gradle安装:需要6.8、6.9 和 7.x 
(3)Spring Boot CLI的安装:Spring Boot命令行界面工具,可快速用于Spring的原型设计,而无需IDE即可启动Spring程序

四. Spring Boot的更新

往上升级新功能版本时,某些旧版本的属性可能已被删除/重命名。Spring Boot 提供了一种在启动时分析应用程序环境和打印诊断信息的方法,也会在运行时临时迁移属性,该依赖为:spring-boot-properties-migrator

<dependency>

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

    <artifactId>spring-boot-properties-migrator</artifactId>

    <scope>runtime</scope>

</dependency>

迁移完成后,需要在项目中删除上述模块。

五. 使用Spring Boot开发

1. 依赖管理

Spring Boot每个版本提供了它支持的依赖项列表。开发时,只需要指定Spring Boot的版本,而不需要关注/配置每一个依赖项的版本,Spring Boot自己会去管理这些。

升级Spring Boot时,它的依赖项也会一起跟着升级

当然,Spring Boot也支持指定并覆盖依赖项信息,但是本身Spring Boot的每一个版本和Spring Framework的每一个基本版本相关联,强烈不建议使用时指定/覆盖。

Spring Boot的Starters是一组方便的依赖描述符,可以根据所需获取所有 Spring 和相关技术的一站式服务,而无需搜索示例代码和复制粘贴加载的依赖项描述符。例如,想使用 Spring 和 JPA 进行数据库访问,在项目中包含依赖项spring-boot-starter-data-jpa即可。

关于spring-boot-starter-*的命名规则:其中*代表某一类应用类型,第三方的启动器(Starters)不应该以spring-boot开头,spring-boot是留给官方命名/扩展的,第三方命名规则:项目名-spring-boot-starter。
而spring boot提供了哪些Starters应用程序启动器?详见:https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.build-systems.starters

2. 代码构建之主程序应用程序类

主程序应用程序类:建议放置在其他类之上的根包中。使用@SpringBootApplication修饰主类,它隐式表示:允许组件从当前目录开始扫描带有@Entity的类,如果不想使用@SpringBootApplication,用@EnableAutoConfiguration和@ComponentScan同样可以达到相同结果。

3. 配置类

Spring Boot支持基于Java的配置,也可以配合XML一起使用,但是建议使用@Configuration。可使用@ComponentScan自动选取所有 Spring 组件,包括@Configuration类。可使用@Import注解类导入额外的配置类。可使用@ImportResource注释加载 XML 配置文件。

关于注解@SpringBootApplication:它等同于以下三个注解
@EnableAutoConfiguration:应用Spring Boot自动配置机制
@ComponentScan:应用@Component扫描机制,去扫描应用所在位置
@SpringBootConfiguration:允许上下文中注册额外的bean或导入额外的配置类。Spring 中标准的替代方案@Configuration
以上注解配置类都不是强制使用,可以根据具体情况组合使用

六. 运行Spring Boot程序

  • IDE中运行,Spring Boot程序可以作为一个普通的Java应用程序在IDE运行
  • 插件运行jar包,比如Spring Boot Maven或Gradle插件(mvn spring-boot:run 或 gradle bootRun)

七. 开发者工具-Developer Tools

Spring Boot 包含一组额外的工具,可以使应用程序开发体验更加愉快。该spring-boot-devtools模块可以包含在任何项目中,以提供额外的开发时功能。打包时,默认不包含devtools,是否应用devtools可通过设置属性:spring.devtools.restart.enabled

1. 默认属性值中的缓存

在Spring Boot 中,它支持的其中几个库会使用缓存来提高性能。比如模板引擎缓存,它会使用已编译的模板以避免重复解析模板文件。

虽然缓存在生产中非常有益,但在开发过程中可能会适得其反,使您无法看到刚刚在应用程序中所做的更改。出于这个原因,spring-boot-devtools 默认禁用缓存选项。例如Thymeleaf 提供spring.thymeleaf.cache来控制是否应用缓存。

在开发 Spring MVC 和 Spring WebFlux 应用程序时,开发者往往需要有关 Web 请求的更多信息,因此开发人员工具将为DEBUG日志web记录组启用日志记录。它将提供有关传入请求的信息、正在处理它的处理程序、响应结果等。

2. 自动重启

使用spring-boot-devtools的应用,会在classpath路径下的文件发生更改时自动重启。这可以在IDE中开发时快速得到代码改动的回馈。默认情况下,classpath下的文件更改都会触发重启,但是不是绝对,比如静态资源文件/视图模板文件。

另,触发重启在不同IDE下的触发条件都不同,比如IDEA需要点击:Build-Build Project;Eclipse保存修改后的文件,就会导致更新类路径从而触发重启;插件的话,Maven需要mvn compile,Gradle需要gradle build(通过 Maven 或 Gradle 重新启动,则必须将forking设置保留为enabled,如果forking为禁用状态,那么devtools的隔离应用类加载器将无法重建重启)

A. 某些资源即使改动,也不需要触发重启。这时需要使用“重启排除”设置,例如排除/static和/public下的文件,即使发生改变也无需重启:pring.devtools.restart.exclude=static/**,public/**
B. 使用触发器文件来触发重启。比如设置只有在src/main/resources/.reloadtrigger更新时才会重新启动:spring.devtools.restart.trigger-file=.reloadtrigger
C. 自定义重启类加载器来触发重启。比如多模块应用,可以使用自定义需要发生“重启”的应用。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值