方式一: 注解賦值
構建javaBean:com\springboot\vo\Dog
1:@Component:注冊bean到spring容器中
2:添加get set toString方法
3:使用@Value(" ")注解進行屬性賦值
package com.springboot.vo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component//注冊bean
public class Dog {
@Value("旺財")
private String name;
@Value("3")
private Integer age;
//添加get set toString方法
}
Springboot測試類測試:
@SpringBootTest
class HellospringbootApplicationTests {
/*自動注入*/
@Autowired
private Dog dog;
@Test
void contextLoads() {
/*打印信息*/
System.out.println(dog.toString());
}
}
打印結果:
Dog{name='旺財', age=3}
方式二: yml文件賦值
構建javaBean:com\springboot\vo\Person
1:@Component:注冊bean到spring容器中
2:添加get set toString方法
3:使用@ConfigurationProperties(prefix = ""):通過application.yml自動注入對應的值
//注冊bean
@Component
//通過application.yml文件賦值 屬性和配置文件的key要一致
@ConfigurationProperties(prefix = "person")
public class Person {
private String id;
private String name;
private Integer age;
private boolean isHappy;
private Date birthday;
private Map<String,Object> maps;
private List<Object> lists;
private Dog dog;
//添加get set toString方法
}
編寫appliation.yml文件
person:
id: ${random.uuid} #表達式獲取uuid
name: 周星星
age: 22
isHappy: true
birthday: 1986/09/03
maps: {k1:v1,k2:v2}
lists:
- springboot
- java
- redis
dog:
name: ${person.name}_旺財 #表達式 獲取name
age: 3
使用@ConfigurationProperties這個注解會報紅,添加依賴解決此問題:
報紅依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
Springboot測試類測試:
@SpringBootTest
class HellospringbootApplicationTests {
/*自動注入*/
@Autowired
private Person person;
@Test
void contextLoads() {
System.out.println(person.toString());
}
}
打印結果:
Person{id=cb9d58a6-67c3-4782-885b-03c3dd7d3ef8, name='周星星', age=22, isHappy=false, birthday=Wed Sep 03 00:00:00 CDT 1986, maps={k1v1=, k2v2=}, lists=[springboot, java, redis], dog=Dog{name='周星星_旺財', age=3}}
yml語法:
值的寫法:
1>字面量:普通的值(數字,字符串,布爾)
k: v:字面直接來寫;
字符串默認不用加上單引號或者雙引號;
"":雙引號;不會轉義字符串里面的特殊字符;特殊字符會作為本身想表示的意思
name: "zhangsan \n lisi":輸出;zhangsan 換行 lisi
'':單引號;會轉義特殊字符,特殊字符最終只是一個普通的字符串數據
name: ‘zhangsan \n lisi’:輸出;zhangsan \n lisi
2>對象、Map(屬性和值)(鍵值對):
k: v:在下一行來寫對象的屬性和值的關系;注意縮進
對象還是k: v的方式
friends:
lastName: zhangsan
age: 20
行內寫法:
friends: {lastName: zhangsan,age: 18}
3>數組(List、Set):
用- 值表示數組中的一個元素
pets:
- cat
- dog
- pig
行內寫法
pets: [cat,dog,pig]