1 #区分大小写 2 server: 3 port: 8081 4 path: hello 5 6 #字面量:普通的值(数字,字符串,布尔): 7 #字符串:双引号 - 不转义 单引号 - 转义 8 9 10 #对象、Map(属性和值)(键值对): 11 #还是k: v方式:在下一行来写对象的属性和值的关系;注意缩进 12 friends: 13 lastName: zhangsan 14 age: 20 15 #行内写法 16 friends2: {lastName: zhangsan,age: 12} 17 18 #数组(List、Set): 19 #用短横线- 值表示数组中的一个元素 20 pets: 21 - cat 22 - dog 23 - pig 24 #行内写法 25 pets2: [cat,dog,pig]
/** * @Author: 张世罡 * @Date: 2019/10/10 * @Description: com.fulan.bean * 将配置文件中配置的每一个属性的值,映射到这个组件中 * @ConfigurationProperties: 告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行梆定 * * 只有这个组件是容器中的组件,才能为容器提供功能 * @version: 1.0 */ @Data @ToString @Component @ConfigurationProperties(prefix = "person") public class Person { // @Value("${person.last-name}") //TODO @Email没效果 @Email private String lastName; // @Value("#{11*2}") private Integer age; // @Value("true") private Boolean boss; private Date birth; private Map<String,Object> maps; private List<Object> lists; private Dog dog; }
使用 @ConfigurationProperties(prefix = "person") 需要导入jar
<!--导入配置文件处理器,配置文件进行梆定就会有提示--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
不用写Set/Get方法,导入lombok包
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.8</version> <scope>provided</scope> </dependency>
application.yml
server: port: 8081 person: lastName: zhangsan age: 18 boss: false birth: 2017/3/4 maps: {k1: v1,k2: v2} lists: - pig - dog - cat dog: name: small dog age: 2
application.properties
配置person的值 person.last-name=张三 person.age=18 person.birth=2017/4/2 person.boss=false person.maps.k1=v1 person.maps.k2=11 person.lists=a,b,c person.dog.name=dog person.dog.age=22
修改properties文件编码,显示文件时转为ascii码 -- 防止乱码
松散语法梆定:驼峰命名和横杠混用
提示:我的@Email没有生效
应用场景:只需要配置文件中的某个值时,使用@Value就可以
SpringTest:
主程序最好写在根目录下面,这样能够和测试类在同一包下面