1. 程式人生 > 其它 >滲透測試思路 - CTF(番外篇)

滲透測試思路 - CTF(番外篇)

配置檔案

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