文章目录
- 前言
- 一. SpringBoot3介绍
- 1.1 SpringBoot项目创建
- 1. 创建Maven工程
- 2. 添加依赖(springboot父工程依赖 , web启动器依赖)
- 3. 编写启动引导类(springboot项目运行的入口)
- 4. 编写处理器Controller
- 5. 启动项目
- 1.2 项目理解
- 1. 依赖不需要写版本原因
- 2. 启动器(Starter)
- 3. @SpringBootApplication注解
- 二. SpringBoot配置文件
- 2.1 统一配置管理
- 2.2 properties配置文件使用
- 2.3 yaml配置文件使用
- 2.4 批量配置文件注入
- 2.5 多环境配置和使用
前言
使用XML、注解、Java配置类、以及他们的混合用法,让人觉得配置文件过于复杂和繁琐!
SpringBoot 帮助简单、快速地创建一个独立的、生产级别的 Spring 应用(说明:SpringBoot底层是Spring),大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Spring 平台以及第三方技术
一. SpringBoot3介绍
1.1 SpringBoot项目创建
1. 创建Maven工程
2. 添加依赖(springboot父工程依赖 , web启动器依赖)
-
springboot父工程依赖
<parent> <!-- spring-boot --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.0.5</version> </parent>
-
web启动器依赖
<dependencies> <!-- 导入对应启动器 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
3. 编写启动引导类(springboot项目运行的入口)
package com.hky;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author hky
* @date ${DATE}
* @Description
*/
// 1. 包含配置类 @SpringBootConfiguration
// 2. 自动加载配置 @EnableAutoConfiguration
// 3. @ComponentScan 默认扫描当前类所在包,子包的注解
@SpringBootApplication //启动类
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class,args);//自动创建ioc容器,启动tomcat服务器软件
}
}
4. 编写处理器Controller
package com.hky.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author hky
* @date 2024/6/28
* @Description
*/
@RestController
@RequestMapping("hello")
public class HelloController {
@GetMapping("boot")
public String hello(){
return "hello springboot3!!";
}
}
5. 启动项目
点击启动类,启动项目
1.2 项目理解
1. 依赖不需要写版本原因
- 每个boot项目都有一个父项目
spring-boot-starter-parent
- parent的父项目是
spring-boot-dependencies
,父项目把所有常见的jar的依赖版本都声明好了。
2. 启动器(Starter)
Starter的是一组预定义的依赖项集合
作用:简化Spring应用程序的配置和构建过程,以便在启动应用程序时自动引入所需的库、配置和功能。
- 使用Starter:在 pom.xml 中添加所需的Starter依赖,Spring Boot会自动处理依赖管理和配置。
- spring boot提供的全部启动器地址
3. @SpringBootApplication注解
- @SpringBootApplication注解是Spring Boot框架中的核心注解,它的主要作用是
简化和加速Spring Boot应用程序的配置和启动过程
。 - 其中包含:
(1)
@EnableAutoConfiguration
注解:启用Spring Boot的自动配置机制
(2)@ComponentScan
注解:自动扫描并加载应用程序中的组件
(3)@Configuration
注解:将被标注的类声明为配置类。配置类可以包含Spring框架相关的配置、Bean定义,以及其他的自定义配置。使得配置和启动可以同时发生。
二. SpringBoot配置文件
2.1 统一配置管理
SpringBoot 进行统一的配置管理,任何参数(端口号、项目根路径、数据库连接信息等等)都集中到一个固定位置和命名的配置文件(
application.properties
或application.yml
)中!
- 配置文件应该放置在Spring Boot工程的src/main/resources目录下
- 命名:application 后缀 .properties / .yaml / .yml
- 若同时存在application.properties | application.yml(.yaml) , properties的优先级更高。
2.2 properties配置文件使用
-
在resources文件夹下创建一个application.properties 配置文件
配置文件内用key=值
的形式书写配置文件\server.port=8081 server.servlet.context-path=/huahua # 自定义 hky.name=hekaiyan hky.age=18
-
读取配置文件
使用@Value(“${hky.name}”)@RestController @RequestMapping("hello") public class HelloController { @Value("${hky.name}") private String name; @GetMapping("boot") public String hello(){ System.out.println(name); return "hello springboot3!!"; } }
2.3 yaml配置文件使用
-
YAML:一种基于
层次结构
的数据序列化格式,旨在提供一种易读、人类友好的数据表示方式。 -
YAML配置文件的扩展名是yaml 或 yml
server: port: 8081 servlet: context-path: /huahua hky: info: name: hekaiyan #此时,冒号属性后面必须有一个空格 age: 18 anims: #数组 - dog - cat
2.4 批量配置文件注入
@ConfigurationProperties
:可以将一些配置属性批量注入到bean对象。
- 创建实体类,在实体类中添加属性和注解(属性名称和配置文件中的key必须要保持一致才可以注入成功)
package com.hky.pojo; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; import org.springframework.stereotype.Controller; import java.util.List; /** * @author hky * @Description * * 读取配置文件信息: * 1. @Value读取 * 只能读取一个值,不能读取数组 * 2. 批量读取 @ConfigurationProperties(prefix = "") */ @Data @Component @ConfigurationProperties(prefix = "hky.info") public class User { private String name; private String age; private List<String> anims; }
2.5 多环境配置和使用
Spring Boot中,可以使用多环境配置来根据不同的运行环境(如开发、测试、生产)加载不同的配置。
-
通过yaml方式实现多环境配置
application-dev.yamlhky: info: name: hekaili
application-test.yaml
hky: info: age: 20
application.yaml
server: port: 8081 servlet: context-path: /huahua hky: info: name: hekaiyan #此时,冒号属性后面必须有一个空格 age: 18 anims: #数组 - dog - cat spring: profiles: active: test,dev # 激活外部配置 # 外部配置的 key 与 application 的 key 重复,外部配置覆盖
-
controller类
@RestController @RequestMapping("user") public class HelloController { @Autowired private User user; @GetMapping("show") public User show(){ return user; } }
-
测试显示
-
注
:如果设置了spring.profiles.active,并且和application有重叠属性,以active设置优先。 -
也可使用
properties
以及命令行参数
实现多环境配置