目录
一、SpringBoot基础
什么是SpringBoot?
Spring Boot是一个用于开发Java应用程序的框架,它旨在简化Spring应用程序的创建和配置过程。Spring Boot提供了一种快速、便捷的方式来创建基于Spring的应用程序,并且可以轻松地集成其他常用的框架和库。
SpringBoot的特点
- 为基于Spring的开发提供更快的入门体验
- 开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求
- 提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等
- SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式
SpringBoot的核心功能
-
起步依赖
起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。
简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
-
自动配置
Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。
核心注解
- 启动类上面的注解是@SpringBootApplication,它也是Spring Boot的核心注解,主要组合包含了以下3个注解:
- @SpringBootConfiguration:组合了@Configuration注解,实现配置文件的功能。
- @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项。
- @ComponentScan:启动组件扫描,这样你写的Web控制器类和其他组件才能被自动发现并注册为Spring应用程序上下文里的Bean。
核心配置文件
Spring Boot有两种类型的配置文件,application和bootstrap文件。
区别:
application配置文件是应用级别的,是当前应用的配置文件。
bootstrap配置文件是系统级别的,用来加载外部配置,如配置中心的配置信息,也可以用来定义系统不会变化的属性。bootstatp文件的加载先于application文件。
配置文件
properties或者yml格式。
区别是书写格式不同,*.properties文件是key=value的形式; *.yml是key: value的形式,.yml 格式不支持 @PropertySource 注解导入配置。
运行方式
- 打包用命令或者放到容器中运行
- 用 Maven/ Gradle 插件运行
- 直接执行 main 方法运行
二、SpringBoot快速入门
项目创建方式
-
使用 IDEA 直接创建项目
-
创建一个新项目
-
选择spring initalizr , 可以看到默认就是去官网的快速构建工具那里实现
-
填写项目信息
-
选择初始化的组件(初学勾选 Web 即可)
-
填写项目路径
-
等待项目构建成功
项目结构分析
- 程序的主启动类(程序的主入口)HelloController
- 一个 application.properties 配置文件(SpringBoot的核心配置文件)
- 一个 测试类 HelloWorldApplicationTests
- 一个 pom.xml
引入相关依赖
项目的总(父)依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.7.15</version>
</parent>
添加相关依赖
编辑项目的 pom.xml
文件,添加 Spring Boot 相关的依赖。
<dependencies>
<!-- Spring Boot Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- Spring Boot Web Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
编写主程序启动类
创建一个 Spring Boot 应用程序的主类,通常命名为 Application.java
,包含 main
方法。这个类将作为应用程序的入口点:
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication//这个注解是标注一个Spring Boot应用
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
创建处理控制类
创建一个控制器类来处理 HTTP 请求。例如,创建一个名为 HelloController.java 的类:
package com.lxm.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController//该注解为组合注解,等同于Spring中@Controller+@ResponseBody注解
@RequestMapping("/hello")//默认为 GET 方法的路由 /hello
public class HelloController {
@GetMapping//用于定义HTTP GET请求的URL路径
public String hello() {
return "Hello, world!";
}
}
运行启动项目
运行 Spring Boot 应用程序:右键点击 Application 类,选择 "Run Application.main()",或者点击类上方的绿色三角形按钮。
打开浏览器,并访问 http://localhost:8080/hello
,你将会看到输出 Hello, world!
。
三、打包成jar的方法
打包配置
-
File -> Project Structure
-
Project Structure -> Artifacts ->JAR ->From modules with dependencies
设置启动类及META-INF
根据 modules
创建 jar
。如图所示,选择项目,入口类等。最后一项 META-INF
默认放到 src\main\java
目录里,如果使用默认值,没有进行其他配置,生成的 jar 有可能不会包含 META-INF
目录,导致运行 jar
出错,正确的是将 META-INF
放到 src
目录下,或者 src\main\resources
目录下。
META-INF/MANIFEST.MF
文件就是项目依赖的第三方包的路径、启动类、版本等信息
打包
-
Build -> Artifacts
2
2.Build
查看打包文件
四、总结
- 1. Spring Boot的核心概念,包括自动配置、起步依赖、嵌入式容器和外部化配置。
- 2. 如何创建一个简单的Spring Boot应用程序,包括创建主应用类、编写控制器、定义实体类和配置数据访问。
- 3. 使用Spring Boot Starter来简化依赖管理,并了解如何自定义Starter依赖。
- 4. 外部化配置的方法,包括属性文件、YAML文件和环境变量的使用。
- 5. Spring Boot Actuator的使用,包括监控应用程序的健康状况和性能指标。
- 6. 编写单元测试、集成测试和端到端测试,并掌握常用的测试工具和技术。
- 7. Spring Boot与Spring框架的整合,包括使用Spring MVC、Spring Data、Spring Security等模块。
- 8. 将Spring Boot应用程序部署到不同环境中,并掌握应用程序的监控和管理技巧。
- 9. 解决常见问题和进行性能调优,以提高应用程序的稳定性和性能。