日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SpringBoot-多模塊多環(huán)境配置,大廠必備技能

 小伙伴們在初入職場(尤其大廠)看到別人的工程,是否曾有如下困擾:

紫云網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)成立于2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運(yùn)維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。

  •  在一個工程里面如何實(shí)現(xiàn)多模塊,分模塊開發(fā)怎么搞?
  •  公司那么多環(huán)境,互相隔離,配置各不相同,如何實(shí)現(xiàn)多環(huán)境?

反觀自己創(chuàng)建的工程,代碼都堆在一個模塊里面,或許還不清楚模塊的概念;更別提多環(huán)境了;

今天我們一文搞定,讓我們離大廠更近一步。

多模塊

模塊

在模塊化編程中,開發(fā)者將程序分解成離散功能塊(discrete chunks of functionality),并稱之為模塊。

多模塊的優(yōu)點(diǎn)

每個模塊具高內(nèi)聚的特性,使得校驗、調(diào)試、測試輕而易舉。 精心編寫的模塊提供了可靠的抽象和封裝界限,使得每個模塊都具有條理清楚的設(shè)計和明確的目的。

實(shí)現(xiàn)多模塊

  1.  創(chuàng)建maven工程
  2.  配置多模塊
  3.  添加模塊依賴

創(chuàng)建maven工程

配置多模塊

在pom中,增加modules節(jié)點(diǎn),模塊名任意名稱,可以配置多個; 

 
 
 
 
  1.   
  2.  seckill-api  
  3.  seckill-biz  
  4.  

通常到這里,多模塊就配置完畢了。但現(xiàn)實(shí)中,我們的模塊間是需要相互依賴的,同時每個模塊還要依賴第三方模塊;

添加模塊依賴

seckill-api(api層)要依賴seckill-biz(業(yè)務(wù)層),在api模塊的pom文件中,增加如下配置 

 
 
 
 
  1.   
  2.    
  3.       com.sifou.courses  
  4.      seckill-biz  
  5.      1.0-SNAPSHOT  
  6.    
  7.  

假定,api和biz模塊都依賴lombok,validation-api這兩個第三方模塊(包),如何實(shí)現(xiàn)?

  •  方案1:在每個(biz & api)模塊中,增加依賴;
  •  方案2:在父模塊增加依賴;

相信大家都會選擇方案2;在root工程中的pom文件,增加如下配置; 

 
 
 
 
  1.   
  2.       1.18.8  
  3.       2.0.1.Final  
  4.     
  5.     
  6.         
  7.           org.projectlombok  
  8.           lombok  
  9.           ${lombok.version}  
  10.         
  11.         
  12.           javax.validation  
  13.           validation-api  
  14.           ${javax.validation}  
  15.         
  16.    

到這里,配置完成;(是不是很清晰,請投幣,點(diǎn)贊)

還可以用mvn dependency:tree命令,來查看依賴關(guān)系(必備核心技能,解決包沖突,解決包版本失效) 

 
 
 
 
  1. [INFO] Scanning for projects...  
  2. [INFO] ------------------------------------------------------------------------  
  3. [INFO] Reactor Build Order:  
  4. [INFO]   
  5. [INFO] com.sifou.courses.seckill  
  6. [INFO] seckill-biz  
  7. [INFO] seckill-api  
  8. [INFO]                                                                        
  9. [INFO] ------------------------------------------------------------------------  
  10. [INFO] Building com.sifou.courses.seckill 1.0-SNAPSHOT  
  11. [INFO] ------------------------------------------------------------------------  
  12. [INFO]   
  13. [INFO] --- maven-dependency-plugin:3.1.2:tree (default-cli) @ com.sifou.courses.seckill ---  
  14. [INFO] com.sifou.courses:com.sifou.courses.seckill:pom:1.0-SNAPSHOT  
  15. [INFO] +- org.projectlombok:lombok:jar:1.18.8:compile  
  16. [INFO] \- javax.validation:validation-api:jar:2.0.1.Final:compile  
  17. [INFO]                                                                       
  18. [INFO] ------------------------------------------------------------------------  
  19. [INFO] Building seckill-biz 1.0-SNAPSHOT  
  20. [INFO] ------------------------------------------------------------------------  
  21. [INFO]   
  22. [INFO] --- maven-dependency-plugin:3.1.2:tree (default-cli) @ seckill-biz ---  
  23. [INFO] com.sifou.courses:seckill-biz:jar:1.0-SNAPSHOT  
  24. [INFO] +- org.projectlombok:lombok:jar:1.18.8:compile  
  25. [INFO] \- javax.validation:validation-api:jar:2.0.1.Final:compile  
  26. [INFO]                                                                        
  27. [INFO] ------------------------------------------------------------------------ 
  28. [INFO] Building seckill-api 1.0-SNAPSHOT  
  29. [INFO] ------------------------------------------------------------------------  
  30. [INFO]   
  31. [INFO] --- maven-dependency-plugin:3.1.2:tree (default-cli) @ seckill-api ---  
  32. [INFO] com.sifou.courses:seckill-api:jar:1.0-SNAPSHOT  
  33. [INFO] +- com.sifou.courses:seckill-biz:jar:1.0-SNAPSHOT:compile 
  34. [INFO] +- org.projectlombok:lombok:jar:1.18.8:compile  
  35. [INFO] \- javax.validation:validation-api:jar:2.0.1.Final:compile  
  36. [INFO] ------------------------------------------------------------------------  
  37. [INFO] Reactor Summary:  
  38. [INFO]   
  39. [INFO] com.sifou.courses.seckill .......................... SUCCESS [  1.007 s]  
  40. [INFO] seckill-biz ........................................ SUCCESS [  0.040 s]  
  41. [INFO] seckill-api ........................................ SUCCESS [  0.036 s]  
  42. [INFO] ------------------------------------------------------------------------  
  43. [INFO] BUILD SUCCESS  
  44. [INFO] ------------------------------------------------------------------------  
  45. [INFO] Total time: 1.862 s  
  46. [INFO] Finished at: 2020-10-29T23:18:09+08:00  
  47. [INFO] Final Memory: 27M/230M  
  48. [INFO] ------------------------------------------------------------------------ 
  49. Process finished with exit code 0 

多環(huán)境

在工作中,我們面臨開發(fā)、測試、生產(chǎn)等等多個環(huán)境,要完美實(shí)現(xiàn)多環(huán)境,總共可以分文兩個大的步驟;

  •  在工程中支持多環(huán)境配置;
  •  在真實(shí)環(huán)境中實(shí)現(xiàn)多環(huán)境啟動;

支持多環(huán)境配置

  1.  創(chuàng)建properties文件
  2.  指定環(huán)境參數(shù)

創(chuàng)建properties文件

在resources文件夾下創(chuàng)建三個以properties為后綴的文件

例如:

application-dev.properties:開發(fā)環(huán)境

application-test.properties:測試環(huán)境

application-prod.properties:生產(chǎn)環(huán)境 

指定環(huán)境參數(shù)

spring.profiles.active=test

到這里,多環(huán)境配置完成;

在Spring Boot中多環(huán)境配置文件名必須滿足:application-{profile}.properties的固定格式,其中{profile}對應(yīng)你的環(huán)境標(biāo)識;

例如:

application-dev.properties:開發(fā)環(huán)境

application-test.properties:測試環(huán)境

application-prod.properties:生產(chǎn)環(huán)境

application.properyies通過spring.profiles.active來具體激活一個或者多個配置文件,如果沒有指定任何profile的配置文件的話,spring boot默認(rèn)會啟動application-default.properties;而哪個配置文件運(yùn)行:

spring.profiles.active=test

就會加載application-test.properties配置文件內(nèi)容

多環(huán)境啟動

剛剛講了在工程中如何配置,那么在真正的環(huán)境中如何啟動?莫非,改配置嗎???當(dāng)然不是,正解如下。 

 
 
 
 
  1. -Dspring.profiles.active=${PROFILE} 

在啟動腳本中,增加上面這個,按環(huán)境來指定要加載的配置文件;

以上,歡迎大家多交流。

最后

我在思否開了一門《大廠電商 Java 秒殺系統(tǒng)架構(gòu)實(shí)戰(zhàn)》課程,本課程從秒殺場景出發(fā),分為基礎(chǔ)篇、進(jìn)階篇、架構(gòu)篇3部分。

  •  基礎(chǔ)篇重點(diǎn)在于實(shí)現(xiàn)功能(導(dǎo)購、交易)
  •  進(jìn)階篇重點(diǎn)突破超賣、突發(fā)流量給系統(tǒng)帶來的挑戰(zhàn),高并發(fā)銀彈,緩存如何使用;
  •  架構(gòu)篇重點(diǎn)講解如何保障系統(tǒng)高可用(方法論+最佳實(shí)踐)

通過秒殺這個典型的高并發(fā)場景,帶你徹底搞明白高并發(fā)系統(tǒng)該如何設(shè)計。 


分享名稱:SpringBoot-多模塊多環(huán)境配置,大廠必備技能
本文URL:http://www.dlmjj.cn/article/djsppgp.html