SpringBoot配置文件properties和yml的实现

  

下面是关于SpringBoot配置文件(properties和yml)的实现攻略。

在SpringBoot应用中,配置文件(properties或yml)主要用于配置应用程序的参数。SpringBoot的默认配置文件位置是 “/src/main/resources/application.properties” 或“/src/main/resources/application.yml”。以下是详细的配置方法:

1. properties文件配置

在properties中,键和值之间使用等号(=)进行分隔,可以看下面的示例代码:

server.port=8080
server.servlet.context-path=/myapp
spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root123

注意,在使用SpringBoot时,可以使用{“}和${}占位符。例如:

server.host=${host:localhost}

这里的表达式 ${host:localhost} 会首先尝试从配置文件中读取“host”参数,如果找不到该参数,则默认使用“localhost”作为主机名

2. yml文件配置

在yml文件中,使用缩进代替等号分隔键和值,使用冒号分隔键和值。以下是一个示例的代码:

server:
port: 8080
servlet:
context-path: /myapp
spring:
datasource:
url: jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf-8&useSSL=false
username: root
password: root123

此外,还可以在yml文件中使用列表和嵌套对象的方式组织数据。例如:

my:
team:
- name: Tom
age: 20
- name: Mary
age: 22

这里的数据是一个“my.team”列表,其中包含两个对象。每个对象都有一个“name”属性和一个“age”属性。

3. 加载及应用

Spring Boot会自动读取默认的配置文件“application.properties”或“application.yml”,不需要任何其他配置。如果要加载其他配置文件,可以通过在命令行上使用--spring.config.name或--spring.config.location参数来指定。例如:

java -jar myproject.jar --spring.config.name=myapp --spring.config.location=classpath:/myapp.yaml,/yourpath/myapp.yaml

在SpringBoot应用中,可以通过@Value注解或@ConfigurationProperties注解来获取配置文件中的值。例如,以下示例显示了如何使用@ConfigurationProperties注解从配置文件中加载jdbc相关的属性。

4. 示例

4.1 前置条件

首先,新建一个SpringBoot的Demo项目,并引入Maven依赖:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
</dependency>

4.2 使用properties文件

在“/src/main/resources”目录下新建“application.properties”文件,并添加以下内容:

# 设置服务器端口
server.port=8080

# 设置Servlet上下文路径
server.servlet.context-path=/myapp

# 设置JDBC连接池
spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root123

Java代码中使用@Value注解读取配置文件中的属性,如下所示:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class AppConfig {

    @Value("${server.port}")
    private String port;

    @Value("${server.servlet.context-path}")
    private String contextPath;

    @Value("${spring.datasource.url}")
    private String url;

    @Value("${spring.datasource.username}")
    private String username;

    @Value("${spring.datasource.password}")
    private String password;

    // getter & setter
}

只需将以上代码添加到应用程序中,即可使用@Value注解从配置文件中获取属性。

4.3 使用yml文件

在“/src/main/resources”目录下新建“application.yml”文件,并添加以下内容:

server:
  port: 8080
  servlet:
    context-path: /myapp
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: root123

在Java代码中使用@ConfigurationProperties注解读取配置文件中的属性,如下所示:

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "spring.datasource")
public class DataSourceProperties {

    private String url;
    private String username;
    private String password;

    // getter & setter
}

只需将以上代码添加到应用程序中,即可使用@ConfigurationProperties注解从配置文件中获取属性。

至此,SpringBoot应用程序中使用properties和yml文件进行配置的方法已经介绍完了。

相关文章