Spring Boot 面试题——配置文件

编程入门 行业动态 更新时间:2024-10-25 12:21:39

Spring Boot 面试题——<a href=https://www.elefans.com/category/jswz/34/1770506.html style=配置文件"/>

Spring Boot 面试题——配置文件

目录

  • 1.介绍一下 Spirng Boot 中常用的两种配置文件。
  • 2.Spirng Boot 中配置文件的优先级是什么样的?
  • 3.Spring Boot 中读取配置文件的方式有哪些?

1.介绍一下 Spirng Boot 中常用的两种配置文件。

(1)在 Spring Boot 中,通常会使用两种常用的配置文件:

  • application.properties:这是使用“key=value”形式的文本文件,主要用于简单场景下的配置,例如服务器端口、数据库连接等。示例:
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
  • application.yml:这是一种基于 YAML (YAML Ain’t Markup Language) 语言表示的文本文件,主要用于复杂场景下的配置,例如多数据源、多环境等。示例如下:
server:port: 8080
spring:datasource:master:url: jdbc:mysql://localhost:3306/masterusername: rootpassword: 123456slave:url: jdbc:mysql://localhost:3306/slaveusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driver

需要注意的是,在 Spring Boot 中,如果同时存在 application.properties 和 application.yml 两个配置文件,优先使用 application.properties 中的配置。

(2)综上所述,对于简单场景下的配置,可以使用 application.properties 文件,而对于复杂场景下的配置,则建议使用 application.yml 文件。在使用 YAML 编写配置时,需要特别注意缩进以及大小写的用法,否则会导致配置文件读取失败。

2.Spirng Boot 中配置文件的优先级是什么样的?

有关配置文件的优先级可以参考SpringBoot 配置文件加载优先级这篇文章。

3.Spring Boot 中读取配置文件的方式有哪些?

假设配置文件 application.properties 中的内容如下:

# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver# 日志配置
logging.level.example.foo=DEBUG
logging.level.root=INFO# 应用配置
myapp.name=MyApp
myapp.version=1.0
myapp.greeting=Hello
myapp.env=${MY_ENV:dev}server.port=8080

那么读取该配置文件的方法如下所示:

  • 使用 @Value 注解:通过 @Value 注解来获取配置文件中的值,示例如下:
// 获取myapp.name
@Value("${myapp.name}")
private String appName;// 获取logging.level.example.foo
@Value("${logging.level.example.foo}")
private String loggingLevelFoo;
  • 使用 @ConfigurationProperties 注解:@ConfigurationProperties 注解将配置文件中的值注入到一个 JavaBean 中,示例如下:
@ConfigurationProperties(prefix = "myapp")
public class MyAppConfig {private String name;private String version;private String greeting;private String env;// getters and setters
}
  • 使用 Environment 对象:通过 Environment 对象获取配置文件中的值,示例如下:
@Autowired
private Environment env;public void printConfig() {System.out.println(env.getProperty("myapp.name"));System.out.println(env.getProperty("logging.level.example.foo"));
}
  • 使用 @PropertySource 注解:使用 @PropertySource 注解来指定配置文件的位置,示例如下:
@Configuration
@PropertySource("classpath:application.properties")
public class AppConfig {// 配置类定义@Value("${myapp.name}")private String appName;
}

以上是 Spring Boot 常用的读取配置文件的方法,根据需求选择性使用即可。

注意:YAML 配置的方式不支持 @PropertySource 注解导入自定义的 YAML 配置!

更多推荐

Spring Boot 面试题——配置文件

本文发布于:2023-11-17 08:24:20,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1642010.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:配置文件   面试题   Spring   Boot

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!