背景
学习过程中需要将账号、密码等类似的数据写入到配置文件中,代码中通过读取配置文件进行赋值。
实现
application.properties文件内容
test.name=langjialing
注:
- 配置项key值应为小写。
测试类
package com.langjialing.controller;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
//可通过@PropertySource("classpath:user.properties")注解指定properties文件,例如新建一个user.properties文件。
//@PropertySource("classpath:user.properties")
@ConfigurationProperties(prefix = "test")
public class PropertiesTestDemo {
private static String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
注:
private static String name;
变量name
是需要加static
的,但是getter
和setter
方法是不能加static
的。这应该是加载顺序造成的影响,博主水平有限。如有大佬知悉原因可邮件指点下,届时会在博文中说明。
Junit单元测试验证结果
@Test
void propertiesTestDemo(){
PropertiesTestDemo propertiesTestDemo = new PropertiesTestDemo();
String s1 = propertiesTestDemo.getName();
System.out.println(s1);
}
总结
@Component与@ConfigurationProperties(prefix = "test")可实现从配置文件中读取数据并赋值给业务代码使用。