springboot读取配置文件中的信息
程序员文章站
2022-06-22 15:54:20
...
在一个项目中,我们有时候会把一些配置信息写入到一个配置文件中,在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.可以使用占位符进行值的替换
上一篇: MySQL密码加密与解密
下一篇: php和redis怎么实现消息队列