术语
软件框架(software framework)
通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品
Spring Boot简介
Spring Boot是对Spring的扩展,采用了约定优于配置(Convention Over Configuration)的软件设计范式,从而大大减少了Spring开发过程中的配置。
Spring Boot 可以很方便的引入符合Spring Boot框架的第三方库,方便到要把大象装进冰箱里只需要三个步骤一样容易,在Spring Boot中我们把它称为三板斧,加依赖、写注解、写配置。
Spring Boot项目
Spring Boot是一个多模块项目,所有模块都包含了Spring Boot模块
模块名称 | 描述 |
---|---|
Spring-boot | 公共模块,其它模块都依赖于这个模块。它主要提供了@SpringApplication注解、将配置进行外部化(使用yaml或properties进行配置)、嵌入web容器(Tomcat,Jetty或undertow),初始化ApplicationContext(应用上下文) |
spring-boot-autoconfigure | 实现约定大于配置的核心模块 |
spring-boot-starters | 功能模块,它包含很多模块,这些模块会引入spring-boot-autoconfigure做一些约定的配置,例如引入spring-boot-starter-data-jpa模块后,只需要在配置文件中写入数据库地址、用户和密码就可以操作数据库。 |
spring-boot-cli | 编译和运行Groovy代码 |
spring-boot-actuator | 监控和管理Spring Boot应用,比如健康检查、审计、统计和HTTP追踪等 |
spring-boot-actuator-autoconfigure | 根据classpath自动配置endpoints |
spring-boot-test | 提供测试的注解,只需要在项目中引用spring-boot-starter-test模块即可 |
spring-boot-test-autoconfigure | 根据classpath进行配置测试需要的环境 |
spring-boot-loader | 该模块可以使项目具有打包为可执行jar或war文件的可能 |
spring-boot-parent | 对版本的管理 |
spring-boot-docs | spring文档 |
在Spring Boot 项目中看下spring-boot-starter-jdbc是如何实现的,在spring-boot-starter-jdbc只存在一个build.gradle的文件,该文件引入了当前项目的spring-boot-starter模块和Spring的spring-jdbc业务实现模块
plugins {
id "org.springframework.boot.starter"
}
description = "Starter for using JDBC with the HikariCP connection pool"
dependencies {
api(platform(project(":spring-boot-project:spring-boot-dependencies")))
api(project(":spring-boot-project:spring-boot-starters:spring-boot-starter"))
api("com.zaxxer:HikariCP")
api("org.springframework:spring-jdbc")
}
在spring-boot-starter的build.gradle文件中看到该模块引入了spring-boot-autoconfigure模块
plugins {
id "org.springframework.boot.starter"
}
description = "Core starter, including auto-configuration support, logging and YAML"
dependencies {
api(platform(project(":spring-boot-project:spring-boot-dependencies")))
api(project(":spring-boot-project:spring-boot"))
api(project(":spring-boot-project:spring-boot-autoconfigure"))
api(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-logging"))
api("jakarta.annotation:jakarta.annotation-api")
api("org.springframework:spring-core")
api("org.yaml:snakeyaml")
}
spring-boot-autoconfigure模块的jdbc自动化配置具体实现
Spring、Spring MVC和Spring Boot的对比
Spring 创建了一套IOC、DI和AOP的规范,可以方便的创建JaveBean。
Spring MVC 是MVC的开发框架,规范了WEB应用和网络接口
Spring Boot 实现自动配置,降低项目搭建的复杂度
环境搭建
开发Spring Boot应用依赖环境
- jdk8 及以上版本,此环境使用jdk8
- maven3.3及以上版本,此环境使用maven3.6.0
搭建前准备
jdk8环境搭建
安装完成,运行java -version
maven3.6.0环境搭建
可以使用IDEA默认的maven不需要以下安装
安装完成,运行 mvn -v
修改IDEA默认的maven,打开IDEA,File -> Settings 或快捷键Ctrl + Alt + S
IDEA创建项目
打开IDEA, File -> New -> Project 打开以下界面。如果Choose Initializr Service URL选择Custom需要自己搭建Spring Boot Initializr。如果使用IDEA的Spring Iniializr创建出现连接超时,可以到 http://start.spring.io 上创建后下载到本运行。
选择JDK的版本和初始化的源
添加一些项目相关的信息
选择导入的模块
工程的目录
可以删除 .mvn文件夹、mvnw和mvnw.cmd文件。
导入maven包
在启动类中添加测试的web接口
@SpringBootApplication
@RestController
public class HelloWorldApplication {
public static void main(String[] args) {
SpringApplication.run(HelloWorldApplication.class, args);
}
@GetMapping("/hello-world")
public String helloWorld() {
return "<h1>Hello world!</h1>";
}
}
总结
基于Spring Boot可以快速搭建Web或控制台程序