下面是关于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文件进行配置的方法已经介绍完了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot配置文件properties和yml的实现 - Python技术站