初识springboot properties配置文件编码问题

这么写

person.lastname=张三
person.age=18
person.birth=2017/12/12
person.boss=false
person.maps.k1=v1
person.maps.k2=14
person.lists=a,b,c
person.dog.name=dog
person.dog.age=15

张三会出现乱码

所以去settings寻找file encoding 设置成utf-8并且勾选转换。

这是properties和yaml文件的配置区别。

configuration properties和@value的区别。

@Value("${person.lastname}")//赋值
private String lastname;

把properties文件中的值付过来,@value是spring框架底层的标签,用来赋值的,用这个方法赋值也行和configuration哪种方法的区别:@value要一个一个赋值,configuration不需要。只需要一个prefix=person就可以全部赋值了。

value支持spel表达式语言,configuration不支持。configuration支持松散语法绑定,configuration支持jsr303数据校验。

value就不会进行数据校验了。

 

配置文件注入数据校验

@Component
@ConfigurationProperties(prefix = "person")
@Validated//校验
public class person {
    //@Value("${person.lastname}")//赋值
    //@Email//lastname 必须填成邮箱格式和@validated配套使用
    private String lastname;
    private Integer age;
    private Boolean boss;
    private Date birth;

    private Map<String,Object>maps;
    private List<Object> lists;
    private Dog dog;

@value注解在复杂类型封装不支持,只能赋值基本类型的值。

configuration可以支持复杂类型的赋值。

如果只是专门编写了一个javabean来和配置文件进行映射,我们就直接使用configurationproperties。

如国只是在某个业务逻辑中需要获取一下配置文件的值,我们就用@value。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值