SpringBoot之自定义配置

读取application.properties文件中的配置

在 application.properties 文件中加入项目的标题、版本、作者等信息

1
2
3
project.title=sample
project.version=v1.0.0-SNAPSHOT
project.author=lemon

@Value注解

新建一个配置类,存储项目的配置信息

1
2
3
4
5
6
7
8
9
10
11
12
13
@Component
@Data
public class ProjectConfig {

@Value("${project.title}")
private String title;

@Value("${project.version}")
private String version;

@Value("${project.author}")
private String author;
}

声明配置的前缀(@ConfigurationProperties)

也可以指定配置的前缀,这样的话就不需要使用 @Value 注解了

1
2
3
4
5
6
7
8
9
@Component
@Data
@ConfigurationProperties(prefix = "project")
public class ProjectConfig {

private String title;
private String version;
private String author;
}

使用Environment

在需要读取配置的地方注入 Environment,通过 Environmen t的 getProperty() 方法获取配置信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@RestController
public class ProjectController {

@Autowired
private Environment env;

/**
* 获取标题
* @return
*/
@RequestMapping(value = "title")
public String title() {
return env.getProperty("project.title");
}
}

读取自定义的配置文件

自定义配置文件 server.properties,放在 resources/config 目录下

1
server.ip=127.0.0.1

创建Bean,指定读取的配置文件

1
2
3
4
5
6
7
8
@PropertySource("classpath:/config/server.properties")
@ConfigurationProperties(prefix = "server")
@Component
@Data
public class ServerConfig {
private String ip;
}

由此,可以读取到自定义的配置文件中的配置。