這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)使用SpringBoot怎么實(shí)現(xiàn)個(gè)性化配置,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)專注于永新企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城系統(tǒng)網(wǎng)站開發(fā)。永新網(wǎng)站建設(shè)公司,為永新等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站建設(shè),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
修改默認(rèn)端口
在上一篇的SpringBoot項(xiàng)目中我們看到在resources目錄中有一個(gè)application.properties文件,這個(gè)文件就是讓我們個(gè)性化配置SpringBoot項(xiàng)目參數(shù)的,也就是說,在這個(gè)文件中按照SpringBoot為我們提供的參數(shù)名,就可以直接修改SpringBoot項(xiàng)目的默認(rèn)參數(shù)。下面我們嘗試修改SpringBoot項(xiàng)目的默認(rèn)端口。具體修改如下:
在application.properties文件中添加下面的參數(shù),然后,啟動(dòng)application.properties文件項(xiàng)目即可。
server.port=8081
并且如果我們使用IDEA開發(fā)工具時(shí),當(dāng)我們?cè)谠赼pplication.properties文件中輸入?yún)?shù)時(shí),IDEA就會(huì)自動(dòng)為我們提供相關(guān)參數(shù)提示,這樣方便我們修改。也就是如下圖所示:
這時(shí)我們啟動(dòng)SpringBoot項(xiàng)目并且用8080端口訪問項(xiàng)目時(shí),發(fā)現(xiàn)已經(jīng)找不到服務(wù)了。
而如果我們用訪問8081端口訪問項(xiàng)目,則發(fā)現(xiàn)服務(wù)可以正常訪問。這就說明,我們已經(jīng)成功將SpringBoot項(xiàng)目的默認(rèn)端口修改為8081端口了。
雖然上面的方式已經(jīng)成功的修改了SpringBoot項(xiàng)目的默認(rèn)參數(shù),但在實(shí)際的開發(fā)中,并不推薦使用application.properties文件的方式修改,因?yàn)樵赟pringBoot項(xiàng)目中有更推薦的方式。也就是使用yml文件的方式。
application.yml文件
使用yml文件的方式修改默認(rèn)參數(shù),也比較簡(jiǎn)單,也就是把a(bǔ)pplication.properties文件文件修改為application.yml文件即可。唯一不同的方式,就是yml文件有自己獨(dú)特的語法,和properties文件不同,可以省略很多參數(shù),并且瀏覽比較直觀。下面我們嘗試用yml文件的方式,將SpringBoot的端口修改為8082端口。
啟動(dòng)項(xiàng)目后訪問剛剛的8081端口,發(fā)現(xiàn)項(xiàng)目已經(jīng)訪問不了。
這時(shí)我們?cè)L問8082端口,發(fā)現(xiàn)項(xiàng)目訪問又正常了,這就說明我們使用yml的方式修改SpringBoot的默認(rèn)參數(shù)方式成功了。
如果我們?cè)L問http://localhost:8082/jilinwu...地址,即可看到SpringBoot接口返回的數(shù)據(jù)。
修改默認(rèn)項(xiàng)目名
下面我們還將使用yml的方式配置SpringBoot項(xiàng)目的項(xiàng)目名。具體參數(shù)如下:
server: port: 8082 context-path: /springboot
我們繼續(xù)啟動(dòng)項(xiàng)目然后依然訪問http://localhost:8082/jilinwu...地址,這時(shí)發(fā)現(xiàn)接口訪問失敗。
然后我們?cè)L問http://localhost:8082/springb...地址,發(fā)現(xiàn)服務(wù)又可正常訪問了。
獲取配置文件中參數(shù)
在實(shí)際的項(xiàng)目開發(fā)中,我們通常會(huì)遇到,讀取配置文件中的參數(shù),那么在SpringBoot中怎么獲取配置文件中的參數(shù)呢?下面我們?cè)谂渲梦募刑砑尤缦聟?shù)。
server: port: 8082 context-path: /springboot email: username: jilinwula password: 123456
下面我們?cè)贑ontroller中采用如下的方式讀取配置文件中的參數(shù)。
@RestController @RequestMapping("/jilinwula") public class JilinwulaController { @Value("${email.username}") private String username; @Value("${email.password}") private String password; @RequestMapping("/helloworld") public Object helloWorld() { Map<String, Object> map = new HashMap<String, Object>(); map.put("username", username); map.put("password", password); return map; } }
我們可以直接使用@Value注解來獲取配置文件中的參數(shù),并且這個(gè)注解不只是在SpringBoot中可以使用,這個(gè)注解在Spring的項(xiàng)目中也可以使用。下面我們啟動(dòng)項(xiàng)目,并訪問http://localhost:8082/springb...地址,看看是不是可以成功的獲取配置文件中的參數(shù)。
我們看上圖所示,我們成功的獲取到了配置文件中的參數(shù)。但如果有強(qiáng)迫證的人,對(duì)于上面的代碼難免有些不滿意。因?yàn)槿绻覀円@取配置文件中非常多的參數(shù)時(shí),要是按照上面的代碼編寫,則需要在代碼中編寫大量的@Value注解,這顯然是不合理的。那有沒有比較方便的辦法呢?答案一定是有的,并且SpringBoot為我們提供了非常方便的方法獲取配置文件中的參數(shù)。下面我們看一下這種方式。
我們首先要在項(xiàng)目的pom.xml中添加以下依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.4</version> <scope>provided</scope> </dependency>
第一個(gè)依賴是自動(dòng)獲取配置文件參數(shù)的必須依賴,而下面的依賴,則是可以用注解的方式動(dòng)態(tài)生成get和set方法,這樣我們?cè)陂_發(fā)時(shí),就不用在寫get和set方法了,在實(shí)際的項(xiàng)目中比較常用。在使用lombok生成get和set方法時(shí),還要在IDEA中添加相應(yīng)的lombok插件,否則IDEA會(huì)提示到不到get和set方法的警告。
其次我們新創(chuàng)建一下獲取配置參數(shù)的類,并且添加@ConfigurationProperties注解,該注解會(huì)自動(dòng)將配置文件中的參數(shù)注入到類中的屬性中(不需要寫@Value注解)。并且可以指定prefix參數(shù)來指定要獲取配置文件中的前綴。具體代碼如下:
package com.jilinwula.springboot.helloworld; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; @Component @ConfigurationProperties(prefix = "email") @Data public class EmailProperties { private String username; private String password; }
上面中的@Data,注解就是動(dòng)態(tài)生成get和set方法的所以上述的代碼是不需要寫get和set方法的。下面我們看一下Controller中的代碼修改:
package com.jilinwula.springboot.helloworld; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.Map; @RestController @RequestMapping("/jilinwula") public class JilinwulaController { @Autowired private EmailProperties emailProperties; @RequestMapping("/helloworld") public Object helloWorld() { Map<String, Object> map = new HashMap<String, Object>(); map.put("username", emailProperties.getUsername()); map.put("password", emailProperties.getPassword()); return map; } }
下面我們啟動(dòng)項(xiàng)目并訪問接口看看是否能夠成功獲取配置文件中的參數(shù)。
下面我們介紹一下在SpringBoot中怎么處理不同環(huán)境中獲取不同的配置參數(shù)。下面我們模擬兩人環(huán)境一個(gè)是開發(fā)環(huán)境,一個(gè)是測(cè)試環(huán)境,我們暫時(shí)以不同端口來區(qū)分這兩個(gè)環(huán)境的區(qū)別。
application-dev.yml:
server: port: 8081 context-path: /springboot email: username: jilinwula password: 123456
application-test.yml:
server: port: 8082 context-path: /springboot email: username: jilinwula password: 654321
application.yml:
spring: profiles: active: dev
這樣當(dāng)我們?cè)赼pplication.yml文件中的參數(shù)設(shè)置為dev時(shí),SpringBoot項(xiàng)目在啟動(dòng)時(shí)就會(huì)讀取application-dev.yml中的參數(shù)。如果我們將參數(shù)設(shè)置為test時(shí),則SpringBoot會(huì)讀取application-test.yml文件中的參數(shù)。
下面我們分別啟動(dòng)項(xiàng)目并且訪問接口:
當(dāng)參數(shù)為dev:
當(dāng)參數(shù)為test:
啟動(dòng)時(shí)指定參數(shù)
在上一篇中我們已經(jīng)介紹過了我們可以使用java -jar 項(xiàng)目的名字的方式啟動(dòng)SpringBoot項(xiàng)目。并且,該方式還支持指定SpringBoot參數(shù),例如上面剛剛介紹的指定獲取同環(huán)境的配置參數(shù)。具體命里如下:
java -jar jilinwula-springboot-helloworld-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
我們此時(shí)繼續(xù)訪問接口發(fā)現(xiàn)還是成功的獲取了dev環(huán)境中的參數(shù)。
springboot一種全新的編程規(guī)范,其設(shè)計(jì)目的是用來簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開發(fā)過程,SpringBoot也是一個(gè)服務(wù)于框架的框架,服務(wù)范圍是簡(jiǎn)化配置文件。
上述就是小編為大家分享的使用SpringBoot怎么實(shí)現(xiàn)個(gè)性化配置了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享名稱:使用SpringBoot怎么實(shí)現(xiàn)個(gè)性化配置
URL分享:http://jinyejixie.com/article48/ggighp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、、云服務(wù)器、營(yíng)銷型網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)