Spring Boot 简介及环境搭建

术语

软件框架(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模块

模块名称 描述
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环境搭建

windows 安装

linux 安装

mac os 安装

安装完成,运行java -version

maven3.6.0环境搭建

可以使用IDEA默认的maven不需要以下安装

windows 安装

linux 安装

mac os 安装

安装完成,运行 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或控制台程序

参考

springBoot快速启动

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章