spring boot常用注解 (spring boot 3.0)

Spring Boot提供了多种方式进行属性配置,主要有以下几种

1、application.properties/application.yml文件配置

Spring Boot默认使用application.properties或application.yml文件作为主配置文件,可以在其中配置各种属性。其中,application.yml使用了更加直观的yaml语法,支持更加复杂的配置结构。

例如,在application.properties中配置数据库连接信息:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root

在application.yml中配置:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: root

命令行参数配置

java -jar myapp.jar --server.port=8080

环境变量配置

可以在环境变量中设置属性值,Spring Boot会自动将其加载到应用程序中。例如,在Linux系统中设置

export SPRING_DATASOURCE_URL=jdbc:mysql://localhost:3306/mydb
export SPRING_DATASOURCE_USERNAME=root
export SPRING_DATASOURCE_PASSWORD=root

读取配置文件中的自定义属性

在application.yml中配置如下数据

girl:
  name: test
  age: 18

注意在配置文件中":"后面有一个空格

在程序中使用

   @Value("${girl.name}")
    private String name;

    @GetMapping("/hello")
    public String hello() {
        log.error("测试日志,{}","spring boot");
        log.info("测试日志,{}","spring boot");
        log.error(name);
        return String.format("第一个spring boot 应用");
    }

代码中通过@Value("${girl.name}")读取配置文件中的数据

在配置文件中配置变量

girl:
  name: test
  age: 18
  realName: ${girl.name}-1

在配置realName时,使用了${girl.name}中的值

通过前缀一次性读入配置

@Data
@Component
@ConfigurationProperties(prefix = "girl")
public class GirlProperty {
    private String name;
    private Integer age;
    private String realName;
}

当系统同时存在@value配置和@ConfigurationProperties配置时,@ConfigurationProperties优先

不同环境的配置

可以通过spring.profiles.active来配置来指定应用程序所处的当前环境。它的值可以是一个或多个以逗号分隔的环境名称,例如dev、prod等

例如,假设有一个application.yml文件和一个application-dev.yml文件,它们分别包含如下内容:

# application.yml
server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost/mydb
    username: root
    password: root

# application-dev.yml
spring:
  datasource:
    url: jdbc:mysql://localhost/mydb-dev
    username: dev
    password: dev

在application.yml中,spring.datasource的配置是通用的;而在application-dev.yml中,spring.datasource的配置是针对dev环境的。如果要启动dev环境,可以通过以下方式指定spring.profiles.active属性:

命令行参数

java -jar myapp.jar --spring.profiles.active=dev

环境变量

export SPRING_PROFILES_ACTIVE=dev

在application.yml中进行配置

# application.yml
server:
  port: 8080
spring:
  profiles:
    active: test
    
# application-test.yml
server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost/mydb
    username: root
    password: root
    
# application-dev.yml
spring:
  datasource:
    url: jdbc:mysql://localhost/mydb-dev
    username: dev
    password: dev