修改端口
在main/resources/application.properties修改端口
server.port=8088
此時啟動訪問localhost:8088/hello 就會看到
Hello Spring Boot!
使用yml文件替換properties 文件
(1)在main/resources 文件下新建一個application.yml 文件
(2)在yml文件中修改端口
server:
port: 8099
(3) 刪除掉application.properties文件,只保留yml文件
(4) 運行程序,此時訪問8099端口即可
獲取配置文件的值
(1) 在application.yml 文件中,編寫上其他內容
server:
port: 8099
name: maomao
age: 18
(2) 利用@Value 注解
@RestController
public class HelloController {
@Value("${name}")
private String name;
@Value("${age}")
private int age;
@RequestMapping(value = {"/hello"},method = RequestMethod.GET)
public String say(){
return name+age;
}
}
(3)訪問8099端口,就獲取到值
maomao 18
使用自定義配置類
如果屬性很多,我們每個屬性都需要寫,顯得有些費事,我們可以利用自定義配置類進行獲取
(1) 修改yml 文件
server:
port: 8099
girl:
name: maomao
age: 18
(2) 創建properties/GirlProperties.java
@Component
@ConfigurationProperties(prefix = "girl")
public class GirlProperties {
private String name;
private int age;
//get和set方法省略
}
(3) 我在使用@ConfigurationProperties 這個注解時,提示找不到class,需在pom文件中引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
(4) 修改controller文件
@RestController
public class HelloController {
@Resource
private GirlProperties girlProperties;
@RequestMapping(value = {"/hello"},method = RequestMethod.GET)
public String say(){
return girlProperties.getName();
}
}
(5)驗證結果
maomao
開發環境和生成環境配置不同的問題
這個問題經常見,比如我們開發環境 name 是maomao ,生成環境是 毛毛,我們大部分都是修改配置文件,但是這樣還是很麻煩。
(1) 復制2個yml文件,分別是application-dev.yml (開發環境) application-prod.yml(生產環境)
(2) 修改application-prod.yml(生產環境)文件
server:
port: 8088
girl:
name: 毛毛
age: 18
(3) application-dev.yml (開發環境)文件內容
server:
port: 8099
girl:
name: maomao
age: 18
(4)application.yml文件內容,這個就代表使用dev的配置文件
spring:
profiles:
active: dev
(5)上篇文章講過java -jar 的啟動方式
- 先執行 mvn install
- 在執行啟動 java -jar girl-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod
(6)此時就是訪問的prod 的配置8088,(注意我們配置的application.yml 中用的是dev 這個配置文件,但是我們啟動的時候加上后面的參數就自動切換到 prod 文件上)
總結
在使用yml進行配置更加簡單方便,使用java -jar 啟動 加上參數,就可以避免我們來回修改配置文件,有漏掉的情況。
源碼下載:github