滲透測試思路 - CTF(番外篇)
阿新 • • 發佈:2021-07-31
配置檔案
SpringBoot使用一個全域性的配置檔案 , 配置檔名稱是固定的
-
application.properties
-
語法結構 :key=value
-
application.yml
-
語法結構 :key:空格 value
配置檔案的作用 :修改SpringBoot自動配置的預設值,因為SpringBoot在底層都給我們自動配置好了;通俗來說就是配置某些Properties中屬性值
yaml語法學習
普通的值 [ 數字,布林值,字串 ]
k: v
字串預設不用加上雙引號或者單引號;
注意:
-
“ ” 雙引號,不會轉義字串裡面的特殊字元 , 特殊字元會作為本身想表示的意思;
比如 :name: "kuang \n shen" 輸出 :kuang 換行 shen
-
'' 單引號,會轉義特殊字元 , 特殊字元最終會變成和普通字元一樣輸出
比如 :name: ‘kuang \n shen’ 輸出 :kuang \n shen
物件
object:
property1: val1
property2: val2
行內寫法
object: {property1: val1,property2: val2}
陣列
用 - 值表示陣列中的一個元素
items: - item1 - item2 - item3
行內寫法
items:[item1,items2,items3]
注入配置檔案
@Value注入配置檔案
@Component //註冊bean public class Dog { @Value("${}") private String name; @Value("18") private Integer age; }
@ConfigurationProperties注入配置檔案
將配置檔案中配置的每一個屬性的值,對映到這個元件中;
SpringBoot將本類中的所有屬性和配置檔案中相關的配置進行繫結
引數 prefix = “person” :將配置檔案中的person下面的所有屬性一一對應
@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<Object> lists; private Dog dog; }
yaml配置檔案
person: name: qinjiang age: 3 happy: false birth: 2000/01/01 maps: {k1: v1,k2: v2} lists: - code - girl - music dog: name: 旺財 age: 1
@PropertySource
載入指定的配置檔案;
@PropertySource(value = "classpath:person.properties") @Component //註冊bean public class Person { @Value("${name}") private String name; ...... }
在resources目錄下新建person.properties檔案
name=kuangshen
配置檔案佔位符
配置檔案還可以編寫佔位符生成隨機數
person: name: xiaoqiang${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