springboot读取配置文件中的信息
在一个项目中,我们有时候会把一些配置信息写入到一个配置文件中,在java代码中读取配置文件的信息。在此记录下读取属性文件中的内容。
在springboot项目中,springboot的配置文件可以使用属性文件,也可以使用yaml文件。建议使用yaml文件来做springboot的配置文件。在springboot中,加载application.yaml文件可以放在多处,例子中默认放在classpath的类路径下。
1.项目的结构图
2.项目的启动类
@SpringBootApplication
public class SpringbootReadPropApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootReadPropApplication.class, args);
}
}
3.读取属性文件的类
/**
* 读取属性文件中的配置信息
*
* @描述
* @作者 huan
* @时间 2016年12月25日 - 下午10:26:01
*/
@RestController
@RequestMapping("read-prop")
public class ReadPropController {
@Value("${persion.name}")
private String name;
@Autowired
private PersionProp persionProp;
@RequestMapping("show")
public Map<String, Object> show() {
Map<String, Object> prop = new HashMap<>();
prop.put("name", this.name);
prop.put("per", persionProp);
return prop;
}
}
@ConfigurationProperties(prefix = "persion")
@Component
class PersionProp {
private int age;
private String name;
private String address;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "PersionProp [age=" + age + ", name=" + name + ", address=" + address + "]";
}
}
4.application.yaml文件中的内容
server:
port: 80 #服务器启动的端口
context-path: /springboot #上下文路径,必须要以/开头
#自定义一些属性
persion:
name: huan
age: 23
address: 湖北-${persion.name}
5.pom文件中的内容
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.huan.springboot</groupId>
<artifactId>springboot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>springboot_read_prop</name>
<description>SpringBoot读取配置文件中的内容</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
6.运行结果
7.注意事项。
1.读取属性文件中的值使用注解@Value
2.yaml文件的格式比较严格, : 后面的空格不能忘记,否则会报错
3.当使用@ConfigurationProperties注解修饰一个类,表示将配置文件中的信息包装到这个类中,同时要使用@Component注解修饰,加入到spring的容器中进行管理.并且需要引入
spring-boot-configuration-processor 这个依赖
4.可以使用占位符进行值的替换
本文来自博客园,作者:huan1993,转载请注明原文链接:https://www.cnblogs.com/huan1993/p/15416227.html