Spring Boot-學習(二)常用配置
Spring Boot (二)-常用配置
一、自定義啟動Banner
快速構建一個Spring Boot專案後,啟動專案來看看SpringBoot預設的啟動Banner長什麼樣子,大多數情況下,我們其實不用關心這個東西。如果你個人或者你的開發團隊覺得這樣做顯得太單一,想定製成一個有個性的Banner啟動圖案,我們可以按照如下步驟來定義:
預設啟動Banner圖:
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.1.9.RELEASE)
自定義Banner:
在resources目錄下新建banner.txt檔案
檔案中可以編寫任何字元,SpringBoot在啟動時會將字元列印到控制檯
推薦一個線上生成字元的網站:http://patorjk.com/software/taag/
${AnsiColor.BRIGHT_RED}:設定控制檯中輸出內容的顏色,可以自定義,具體參考
org.springframework.boot.ansi.AnsiColor
關閉Banner圖案:
public static void main(String[] args) { SpringApplication app = new SpringApplication(DemoApplication.class); app.setBannerMode(Banner.Mode.OFF); app.run(args); }
修改埠和預設路徑
server: port: 8889 servlet: context-path: /chapter02
二、多環境切換配置
在實際專案開發中,會有多套環境來支撐,例如開發環境(dev)、測試環境(test)、生產環境(pro)和uat環境(uat),通過spring.profiles.active屬性可以非常方便的切換到不通的環境下。
在resources目錄下新建application-dev.yml、application-pro.yml、application-test.yml、application-uat.yml 四個環境的配置檔案,這裡為了演示,我們將不同環境的埠號分別修改如下:
dev
server: port: 8081 servlet: context-path: /chapter02
pro
server: port: 8082 servlet: context-path: /chapter02
test
server: port: 8083 servlet: context-path: /chapter02
uat
server: port: 8084 servlet: context-path: /chapter02
在application.yml配置檔案中新增配置:
spring: profiles: active: pro
切換active的值,啟動專案觀察埠號,如果發生變化說明配置成功。
三、自定義屬性配置
切換當前環境為:dev,在application-dev.yml中新增如下自定義屬性:
#自定義屬性配置 com: example: name: test mail: [email protected] addr: 北京市海淀區首體南路
建立ExampleProp類,存放於utils包下
第一種方式:
@Data @Component public class ExampleProp { @Value("${com.example.name}") private String name; @Value("${com.example.mail}") private String mail; @Value("${com.example.addr}") private String addr; }
第二種方式:
@Data @Component @ConfigurationProperties(prefix = "com.example") public class ExampleProp { private String name; private String mail; private String addr; }
@Data: lombok簡化程式碼用的,後面章節單獨介紹,可以去掉這個註解,然後手動生成getter和setter
@Component: 讓spring在啟動的時候掃描到該類,並新增到spring容器中。
@Value("${com.example.name}"): 載入配置檔案中的屬性值
@ConfigurationProperties(prefix = “com.example”): 設定字首,屬性上不需要添加註解。
建立一個Controller,來驗證屬性配置是否生效
@RestController public class PropController { @Autowired ExampleProp exampleProp; @GetMapping("/getProp") public ExampleProp getProp(){ return exampleProp; } }
使用@Autowired註解,將我們建立好的Bean注入到Controller中,然後啟動應用。
@RestController和@GetMapping("/getProp")用來定義訪問路徑,後面章節再細說。
啟動專案,在瀏覽器訪問:http://localhost:8081/chapter02/getProp
我們可以看到exampleProp物件的屬性值已經成功注入。
(參考連結:https://blog.csdn.net/qiangzi1103/article/details/102544925)