SpringBootyml配置⽂件中特殊字符的处理,及数组的配置和处理1. yml配置⽂件中特殊字符的处理
加上双引号就可以包含特殊字符, 加上单引号会进⾏转义操作
2. yml配置数组的⽅法
springboot中文2.1 yml配置⽂件:
test:
list:
-'a'
-'b'
-'c'
12345
数组、Map等都输⼊复杂类型封装,Value注解⽆法直接读取。
但是可以通过@ConfigurationProperties注解读取
2.2 通过@ConfigurationProperties注解读取
这⾥分为两种情况
1、读取的是配置在l⽂件中的属性
只需要在类上加上注解就可以,配置好前缀
@Component
@ConfigurationProperties(prefix ="test")
public class TestYML {
private String[] list;
public void test(){
System.out.println("list:"+list);
}
/// set⽅法不能少
public void setList(String[] list){
this.list = list;
}
}
2、如果配置是在⼀个单独的yml⽂件中,例如 a.yml
那么此时还应该加上⼀个@PropertySource注解,指明来⾃哪个配置⽂件和⼀个Factory类
@Component
@PropertySource(value ={"l"}, factory = YamlPropertySourceFactory.class)
@ConfigurationProperties(prefix ="test")
public class TestYML {
private String[] list;
public void test(){
System.out.println("list:"+list);
}
/// set⽅法不能少
public String[]getList(){
return list;
}
}
import org.v.YamlPropertySourceLoader;
import nv.PropertySource;
import io.support.DefaultPropertySourceFactory;
import io.support.EncodedResource;
import java.io.IOException;
import java.util.List;
public class YamlPropertySourceFactory extends DefaultPropertySourceFactory {
@Override
public PropertySource<?>createPropertySource(String name, EncodedResource resource)throws IOException {
if(resource == null){
atePropertySource(name, resource);
}
List<PropertySource<?>> sources =new YamlPropertySourceLoader().Resource().getFilename(), Resource()); (0);
}
}
同时注意,要有set⽅法
注:
1. 如果使⽤@ConfigurationProperties注⼊配置参数,切记⽣成get和set⽅法。
2. @ConfigurationProperties(prefix=“⼩写,-等”) 其中prefix的名字,不能是⼤写字母或者驼峰形式,要不然会报错
3. ⽽且这个注解中的localhosts属性也取消了,可以⽤@PropertySource(“classpath:a.properties”)注解替代。
4. 使⽤@Value("${xxx}"),可以不⽣成get和set⽅法。
参考
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论