Bootstrap

SpringBoot

认识Spring Boot

First Spring Boot

第一步:创建一个空的工程,并设置JDK版本21(Spring Boot 3要求JDK最低版本是17)

第二步:设置maven

第三步:创建一个Maven模块 sb3-01-first-web

 第四步:打开Spring Boot 3官方文档,按照文档一步一步进行

第五步:要使用Spring Boot 3,需要继承这个开源项目。从官方指导文档中复制以下内容:

<!--继承Spring Boot 3.3.3开源项目-->
<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>3.3.3</version>
</parent>

第六步:添加Spring Boot的web starter

<dependencies>
    <!--引入Spring Boot web启动器依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.at</groupId>
    <artifactId>Springboot3-01-first</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!--使用Springboot框架首先要继承这个Springboot这个父工程-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.3</version>
    </parent>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    
    <dependencies>
        <!--引入Spring Boot web启动器依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>




</project>

 第七步:编写Spring Boot主入口程序

package com.powernode.springboot3;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

第八步:编写controller

package com.powernode.springboot3.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@ResponseBody
public class MyController {

    @RequestMapping("/hello")
    public String index(){
        return "Hello World!";
    }
    
}

第九步:运行main方法就是启动web容器

 第十步:打开浏览器访问

注意

便捷的部署方式

打jar包运行

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
	</plugins>
</build>

但是jdk的版本必须适配

SpringBoot的jar包和普通jar包的区别

Spring Boot脚手架

什么是脚手架

建筑工程中的脚手架

软件开发中的脚手架

Spring Boot脚手架

使用官方提供的

使用官方脚手架生成Spring Boot项目

将项目放到IDEA当中

脚手架生成的pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
  <!--继承Spring Boot父工程-->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.3.4</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
  <!--自己项目的坐标-->
	<groupId>com.powernode</groupId>
	<artifactId>sb3-02-use-spring-initializr</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>sb3-02-use-spring-initializr</name>
	<description>使用spring官方提供的脚手架构建springboot项目</description>
	<url/>
	<licenses>
		<license/>
	</licenses>
	<developers>
		<developer/>
	</developers>
	<scm>
		<connection/>
		<developerConnection/>
		<tag/>
		<url/>
	</scm>
	<properties>
		<java.version>21</java.version>
	</properties>
	<dependencies>
    <!--web起步依赖-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
    <!--单元测试起步依赖-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

  <!--打包插件-->
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
  
</project>

脚手架生成的Spring Boot项目的结构

编写controller并测试

使用阿里提供的

使用IDEA工具的脚手架插件

为何以继承方式引入SpringBoot

提出疑问

作为父项目和作为依赖的区别

原理揭晓

依赖统一管理的好处

Starter-启动器

启动器实现原理

都有哪些启动器

官方提供的启动器

非官方的启动器

Spring Boot核心注解

@SpringBootApplication注解

@SpringBootConfiguration注解

@EnableAutoConfiguration注解

@ComponentScan注解

Spring Boot的单元测试

不使用单元测试怎么调用service

使用单元测试怎么调用service

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;