(*^▽^*)好久没给大家分享一些遇到的bug和好用的小技巧啦,之前还是处于学生时期的我,时间可谓是大把大把,但是今年八月八号开始进入了一个打工人身份啦o(╥﹏╥)o!好啦,屁话不多说啦。直接发车
一、准备工作
- 准备好一个SpringBoot项目
- 准备好一个.properties的文件
ps:yml文件不知道可不可以,我没去试过!大家有兴趣的可以去试试哈
二、开始
1、创建一个username.properties文件
2、添加你需要操作数据
#map方式
data.person[name]=zhangsan
data.person[age]=12
data.person[sex]=男
#list方式
data.list[0]=lisi
data.list[1]=18
data.list[2]=女
#单个方式
data.name=无厘头
3、创建一个接收的类,这样方便我们去操作
package com.example.demo11.com.demo;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author xyl
* @date 2023/01/03 14:28
*/
@Configuration
//这里的data也就是username.properties里面变量的开头 防止和别人的冲突了
@ConfigurationProperties(prefix = "data")
//如果只有一个主配置类文件,@PropertySource可以不写 这个的encoding 是为了解决中文乱码的问题
@PropertySource(value = {"classpath:username.properties"}, encoding = "utf-8")
public class UserName {
/**
* data.person.name
* 这里map名需要和username.properties中的参数一致
*/
private Map<String, String> person = new HashMap<>();
/**
* data.list
* 这里list名需要和username.properties中的参数一致
*/
private List<String> list = new ArrayList<>();
/**
* data.name
* 这里name名需要和username.properties中的参数一致
*/
private String name;
public Map<String, String> getPerson() {
return person;
}
public void setPerson(Map<String, String> person) {
this.person = person;
}
public List<String> getList() {
return list;
}
public void setList(List<String> list) {
this.list = list;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
4、现在可以直接操作这些变量啦
创建测试类
/**
* @author xyl
* @date 2023/1/3 14:32
*/
@RunWith(SpringRunner.class)
@SpringBootTest
class MainTest {
@Resource
private UserName userName;
@Test
public void test(){
System.out.println("======list=====");
List<String> list = userName.getList();
list.forEach(System.out::println);
System.out.println("======map=====");
Map<String, String> person = userName.getPerson();
for (String s : person.keySet()) {
System.out.println(person.get(s));
}
System.out.println("======String=====");
String name = userName.getName();
System.out.println(name);
}
}
测试的效果
补充:中文出现乱码的情况
这个是因为文件编码导致的,你看看你的.properties文件编码是不是如图中所示:
如果跟图中是一样的话,只需要改成UTF-8就行了。这样就解决了乱码问题!如果还没解决的话,你可以私信我。我帮你看看