详解Spring-boot中读取config配置文件的两种方式
在Spring Boot应用中,配置文件的管理是至关重要的,它允许开发者定义应用程序的行为和外部服务的连接信息。本文将深入探讨两种在Spring Boot中读取`config`配置文件的方法,特别是核心配置文件`application.properties`或`application.yml`以及自定义配置文件。 ### 一、读取核心配置文件信息 Spring Boot的核心配置文件通常是`application.properties`或其YAML格式的`application.yml`。这两个文件位于`src/main/resources`目录下,用于设置应用的基本属性。这两种文件的读取方法如下: #### 1. 使用`@Value`注解 这是一种常见且简便的方式,通过`@Value`注解可以直接将配置文件中的值注入到字段或方法参数中。例如: ```java @RestController public class WebController { @Value("${test.msg}") private String msg; @RequestMapping("/index1") public String index1() { return "方式一:" + msg; } } ``` 在这个例子中,`@Value`注解的`${test.msg}`对应于`application.properties`中的`test.msg`键值对,这样`msg`字段就会被设置为配置文件中的值。 #### 2. 使用`Environment`对象 另一种方法是通过`@Autowired`注入`Environment`对象,然后使用`getProperty()`方法获取配置信息。示例如下: ```java @RestController public class WebController { @Autowired private Environment env; @RequestMapping("/index2") public String index2() { return "方式二:" + env.getProperty("test.msg"); } } ``` 这里的`env.getProperty("test.msg")`同样会返回`test.msg`的值。 ### 二、读取自定义配置文件信息 除了核心配置文件,我们还可以定义自定义配置文件来存放特定的应用配置。例如,创建一个名为`author.properties`的文件,放在`src/main/resources`目录下,内容如下: ```properties author.name=Solin author.age=22 ``` 为了读取这个自定义配置文件,我们需要做以下几步: 1. **创建配置文件实体类**:创建一个类来映射配置文件中的键值对,比如`AuthorProperties`。 ```java @ConfigurationProperties(prefix = "author") public class AuthorProperties { private String name; private int age; // getters and setters } ``` 在这里,`@ConfigurationProperties(prefix = "author")`注解指定了配置前缀,使得Spring Boot能够自动绑定`author.properties`中的键值对。 2. **启用配置属性**:在主配置类(如`Application.java`)中添加`@EnableConfigurationProperties(AuthorProperties.class)`,使Spring Boot知道要处理`AuthorProperties`。 3. **注入并使用配置信息**:在需要使用的地方通过`@Autowired`注入`AuthorProperties`实例,然后直接访问其属性。 ```java @RestController public class WebController { @Autowired private AuthorProperties author; @RequestMapping("/author") public String authorInfo() { return "作者名称:" + author.getName() + ", 年龄:" + author.getAge(); } } ``` 现在,当访问`/author`路由时,会返回自定义配置文件中的作者信息。 通过以上两种方式,开发者可以在Spring Boot项目中灵活地管理和读取配置文件,以适应不同场景的需求。无论是核心配置文件还是自定义配置文件,Spring Boot提供的强大配置支持都能让应用的配置管理变得简单而高效。