Spring Boot & 配置
簡介
首先是理解以下配置,配置可以簡單的理解成配置bean。平時寫程式碼如果不考慮擴充套件性的話,很多的配置資訊都寫死在了程式碼裡面(要修改就比較麻煩)。配置就可以狹義的理解成將一些屬性,常量等放到一個配置檔案裡面去。
spring boot 的配置方式比較多,我們先講講常見的方式。比較常見的方式就是classpath下面的application.properties,spring boot 會載入這個配置檔案。
對待配置也要有理智的認識,配置就是為了使用配置,而不是為了配置而配置
建立配置
- 在classPath下面建立一個 application.properties 檔案
-
新增一些配置(配置是以鍵值對的形式新增)
使用配置(這個才是最重要的)
- 使用註解的形式 @Value(這裡可以理解成 SPEL 表示式)
@SpringBootApplication
@RestController
public class App {
@Value("${name}")
private String name;
@Value("${number}")
private String number;
@Value("${user.firstname}")
private String firstName;
@RequestMapping("/")
public String showProperInfo(){
return firstName+name+" "+number;
}
public static void main(String[] args){
SpringApplication.run(App.class,args);
}
}
- 使用 Java 程式碼來取
@SpringBootApplication
@RestController
public class App {
@Autowired
Environment environment;
@RequestMapping("/")
public String showProperInfo(){
String firstName = environment.getProperty("user.firstname");
String name = environment.getProperty("name");
String number = environment.getProperty("number");
return firstName+name+" "+number;
}
public static void main(String[] args){
SpringApplication.run(App.class,args);
}
}
-
自動裝配到Java類的屬性,註解@ConfigurationProperties(spring boot的自動裝配的bean基本都是使用這種方式實現)。可以理解成以一種模式來裝配
-
修改一下配置資訊
- 註解配置,ConfigurationProperties 配置一個字首,配置檔案裡面的屬性就可以和字首對映起來(注意這裡要配置的屬性需要get 和 set 方法)
-
@SpringBootApplication
@RestController
@Configuration
@ConfigurationProperties(prefix = "my.setting")
public class App {
private String name;
private String number;
@RequestMapping("/")
public String showProperInfo(){
return name + " " + number;
}
public static void main(String[] args){
SpringApplication.run(App.class,args);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
}
Application.properties的其他功能
-
屬性之間的引用,配置的屬性可以引用其他配置屬性(可以簡單的理解成文字替換)
-
隨機數支援
不同配置之間的切換
- 有時候有這樣的需求,測試的時候是一個配置,開發的時候是一個配置
-
按照一定的規律建立多個配置檔案,通過啟用不同的配置檔案來實現不同配置之間的切換
-
通過spring.profiles.active屬性啟用不同的配置,如果要啟用application-dev.properties就使用spring.profiles.active=dev。如果要啟用application-pro.properties就使用spring.profiles.active=pro。這個屬性可以配置多個(spring.profiles.active=pro,dev)
條件化配置
- 使用場景是有一些bean在測試的時候需要註冊,有些bean僅僅在生產環境註冊
- spring 提供了@Profile註解來條件化配置,這個註解是和上面配置的spring.profiles.active屬性一起使用的,比如如果@Profile("dev")對應的bean或者配置類就僅僅是在spring.profiles.active中有dev是被初始化
- 任何使用了@Component 和 @Configuration註解的類都可以使用Profile註解
@Configuration
@Profile("dev")
public class ProductionConfiguration {
}
End
相關文章
- Spring Boot:Spring Boot配置MybatisSpring BootMyBatis
- Spring Boot:Spring Boot配置SwaggerSpring BootSwagger
- spring boot 配置 JPASpring Boot
- Spring Boot核心配置Spring Boot
- Spring boot學習(二) Spring boot基礎配置Spring Boot
- Spring Boot學習筆記:Spring Boot核心配置Spring Boot筆記
- Spring Boot Security配置教程Spring Boot
- Spring Boot日誌配置Spring Boot
- Spring Boot 配置檔案Spring Boot
- Spring Boot中配置 AuditListenerSpring Boot
- 【Spring Boot】yaml配置注入Spring BootYAML
- Spring boot學習(九)Spring boot配置郵件傳送Spring Boot
- Spring boot學習(八)Spring boot配置ehcache快取框架Spring Boot快取框架
- spring boot 配置外接tomcatSpring BootTomcat
- Spring Boot 支援 JSP配置Spring BootJS
- 玩轉spring boot——properties配置Spring Boot
- Spring Boot 自動配置原理Spring Boot
- Spring Boot + Mybatis + Spring MVC環境配置(三):DataSource配置Spring BootMyBatisMVC
- Spring Boot + Mybatis + Spring MVC環境配置(二):Mybatis Generator配置Spring BootMyBatisMVC
- Spring Boot 配置 tess4jSpring Boot
- Spring Boot Reactor Netty配置 | BaeldungSpring BootReactNetty
- Spring Boot + MYSQL + Docker的配置 - DEVSpring BootMySqlDockerdev
- Spring Boot 配置介面 WebMvcConfigurerSpring BootWebMVC
- Spring Boot核心原理-自動配置Spring Boot
- spring boot配置檔案相關Spring Boot
- Spring Boot 配置檔案總結Spring Boot
- Spring Boot - Profile不同環境配置Spring Boot
- 使用Spring Boot整合Apollo配置中心Spring Boot
- Spring Boot配置類的註解Spring Boot
- Spring Boot + Mybatis + Spring MVC環境配置(一) :Spring Boot初始化,依賴新增Spring BootMyBatisMVC
- Spring Boot 外部化配置實戰解析Spring Boot
- spring boot基於Java的容器配置Spring BootJava
- Spring Boot外部化配置實戰解析Spring Boot
- Spring Boot 配置 Quartz 定時任務Spring Bootquartz
- Spring Boot 自動配置 原始碼分析Spring Boot原始碼
- spring boot(二)配置資訊的讀取Spring Boot
- Spring Boot 靜態資源配置 A卷Spring Boot
- # Spring Boot 外部化配置實戰解析Spring Boot