spring boot外部化配置相关面试题(5个)

spring boot外部化配置相关面试题(5个)

1.@value是否支持绑定数组

不支持,@value只支持绑定一个数据并且数据类型为基本数据类型

2.@value绑定的数据是否可用表达式拆分

可以,如 array1: aaa,bbb,ccc 存储为集合可使用表达式@Value("#{’${test.list}’.split(’,’)}")private List testList;

3.@ConfigurationProperties是否支持多个数据绑定

支持,如

student:
  name: admin
  age: 18
@ConfigurationProperties(prefix = "student")
public class student {
   private String name;
    private String age;
    }

4.说说@ConfigurationProperties与@value的区别

1.绑定的数量:
Value:单个绑定
ConfigurationProperties:批量绑定
2.是否支持松散语法
Value:不支持
ConfigurationProperties:支持
松散语法:
studentName --> student_name
3.是否支持格式校验
Value:不支持(无效)
@Email
@Value("${student.email}")
punlic int email;
ConfigurationProperties:支持
@Email
punlic int email;
4.是否支持表达式
Value:支持
@Value("#{18+1}")
punlic int age;
ConfigurationProperties:不支持

5.在什么情况下使用@value在什么情况下使用@ConfigurationProperties

在对数据无需使用表达式或者对数据要进行批量绑定时可以使用@ConfigurationProperties
在对数据单个绑定,或要对数据使用表达式处理时可用@value

你可能感兴趣的:(java)