server:
port: 8082
=======================================================================
yaml文件更强大的地方在于,他可以给我们的实体类直接注入匹配值!
1、在springboot项目中的resources目录下新建一个文件 application.yml
2、编写一个实体类 Dog;
使用@Value主机给bean注入属性值
package com.study.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
-
@Description :
-
@Date :2021/4/26 16:01
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Component//注入到bean容器中
public class Dog {
@Value(“旺财”)
private String name;
@Value(“3”)
private Integer age;
}
3、在SpringBoot的测试类下注入狗狗输出一下;
package com.study;
import com.study.pojo.Dog;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class DemoApplicationTests {
@Autowired
private Dog dog;
@Test
void contextLoads() {
System.out.println(dog);
}
}
结果成功输出,@Value注入成功,
4、我们在编写一个复杂一点的实体类:Person 类
package com.study.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
-
@Description :
-
@Date :2021/4/26 16:04
*/
/*
@ConfigurationProperties的作用
将配置文件中配置的每一个属性的值,映射到组件中;
告苏springboot将本类中所有属性个配置文件中相关配置进行绑定
参数prefix=“person”,将配置文件中的person下面的所有属性一一对应
只有这个组件是容器里面的组件,才能使用容器提供的@ConfigurationProperties
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Component//注册bean
@ConfigurationProperties(prefix = “person”)
public class Person {
private String name;
private Integer age;
private Boolean happy;
private Date birth;
private Map<String,Object> maps;
private List lists;
private Dog dog;
}
5、我们来使用yaml配置的方式进行注入,大家写的时候注意区别和优势,我们编写一个yaml配置!
person:
name: hello
age: 3
happy: false
birth: 1021/4/26
maps: {k1: v2,k2: v2}
lists:
-
first
-
second
-
third
dog:
name: “旺财”
age: 5
6、IDEA 提示,springboot配置注解处理器没有找到,让我们看文档,我们可以查看文档,找到一个依赖!
org.springframework.boot
spring-boot-configuration-processor
true
7、确认以上配置都OK之后,我们去测试类中测试一下:
@SpringBootTest
class DemoApplicationTests {
@Autowired
private Person person;
@Test
void contextLoads() {
System.out.println(person);
}
}
@PropertySource :加载指定的配置文件;
@configurationProperties:默认从全局配置文件中获取值;
1、我们去在resources目录下新建一个person.properties文件
name=张三
2、然后在我们的代码中指定加载person.properties文件
@PropertySource(value = “classpath:person.properties”)
@Component //注册bean
public class Person {
@Value(“${name}”)
private String name;
…
}
3、再次输出测试一下:指定配置文件绑定成功!
配置文件还可以编写占位符生成随机数
person:
name: qinjiang${random.uuid} # 随机uuid
age: ${random.int} # 随机int
happy: false
birth: 2000/01/01
maps: {k1: v1,k2: v2}
lists:
-
code
-
girl
-
music
dog:
name: ${person.hello:other}_旺财
age: 1
我们上面采用的yaml方法都是最简单的方式,开发中最常用的;也是springboot所推荐的!配置文件除了yml还有我们之前常用的properties 。
【注意】properties配置文件在写中文的时候,会有乱码 , 我们需要去IDEA中设置编码格式为UTF-8;
settings–>FileEncodings 中配置;
properties形式文件测试步骤:
1、新建一个实体类User
@Component //注册bean
public class User {
private String name;
private int age;
private String sex;
}
2、编辑配置文件 user.properties
user1.name=kuangshen
user1.age=18
总结
虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。
架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。
如果你也想成为一名好的架构师,那或许这份Java成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。
0)properties形式文件测试步骤:
1、新建一个实体类User
@Component //注册bean
public class User {
private String name;
private int age;
private String sex;
}
2、编辑配置文件 user.properties
user1.name=kuangshen
user1.age=18
总结
虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。
架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。
如果你也想成为一名好的架构师,那或许这份Java成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。
[外链图片转存中…(img-15CQrGUY-1714462875870)]