成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Spring Boot - 多模塊多環境配置,大廠必備技能

開發 后端
反觀自己創建的工程,代碼都堆在一個模塊里面,或許還不清楚模塊的概念;更別提多環境了;今天我們一文搞定,讓我們離大廠更近一步。

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

  •  在一個工程里面如何實現多模塊,分模塊開發怎么搞?
  •  公司那么多環境,互相隔離,配置各不相同,如何實現多環境?

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

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

多模塊

模塊

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

多模塊的優點

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

實現多模塊

  1.  創建maven工程
  2.  配置多模塊
  3.  添加模塊依賴

創建maven工程

配置多模塊

在pom中,增加modules節點,模塊名<module>任意名稱</module>,可以配置多個; 

  1. <modules>  
  2.  <module>seckill-api</module>  
  3.  <module>seckill-biz</module>  
  4. </modules> 

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

添加模塊依賴

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

  1. <dependencies>  
  2.  <dependency>  
  3.       <groupId>com.sifou.courses</groupId>  
  4.      <artifactId>seckill-biz</artifactId>  
  5.      <version>1.0-SNAPSHOT</version>  
  6.  </dependency>  
  7. </dependencies> 

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

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

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

  1. <properties>  
  2.       <lombok.version>1.18.8</lombok.version>  
  3.       <javax.validation>2.0.1.Final</javax.validation>  
  4.   </properties>  
  5.   <dependencies>  
  6.       <dependency>  
  7.           <groupId>org.projectlombok</groupId>  
  8.           <artifactId>lombok</artifactId>  
  9.           <version>${lombok.version}</version>  
  10.       </dependency>  
  11.       <dependency>  
  12.           <groupId>javax.validation</groupId>  
  13.           <artifactId>validation-api</artifactId>  
  14.           <version>${javax.validation}</version>  
  15.       </dependency>  
  16.   </dependencies> 

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

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

  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 

多環境

在工作中,我們面臨開發、測試、生產等等多個環境,要完美實現多環境,總共可以分文兩個大的步驟;

  •  在工程中支持多環境配置;
  •  在真實環境中實現多環境啟動;

支持多環境配置

  1.  創建properties文件
  2.  指定環境參數

創建properties文件

在resources文件夾下創建三個以properties為后綴的文件

例如:

application-dev.properties:開發環境

application-test.properties:測試環境

application-prod.properties:生產環境 

指定環境參數

spring.profiles.active=test

到這里,多環境配置完成;

在Spring Boot中多環境配置文件名必須滿足:application-{profile}.properties的固定格式,其中{profile}對應你的環境標識;

例如:

application-dev.properties:開發環境

application-test.properties:測試環境

application-prod.properties:生產環境

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

spring.profiles.active=test

就會加載application-test.properties配置文件內容

多環境啟動

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

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

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

以上,歡迎大家多交流。

最后

我在思否開了一門《大廠電商 Java 秒殺系統架構實戰》課程,本課程從秒殺場景出發,分為基礎篇、進階篇、架構篇3部分。

  •  基礎篇重點在于實現功能(導購、交易)
  •  進階篇重點突破超賣、突發流量給系統帶來的挑戰,高并發銀彈,緩存如何使用;
  •  架構篇重點講解如何保障系統高可用(方法論+最佳實踐)

通過秒殺這個典型的高并發場景,帶你徹底搞明白高并發系統該如何設計。 

 

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2022-02-16 19:42:25

Spring配置開發

2020-03-24 14:55:48

Spring Boot多模塊Java

2023-11-01 15:07:51

環境配置方式

2024-11-25 08:00:00

2023-10-04 00:50:00

Java開發

2021-09-29 19:16:07

前端React配置

2009-07-21 17:39:50

iBATIS的多對多映

2020-05-14 18:04:20

Spring BootSaaS平臺

2024-06-11 00:00:06

Spring考試系統

2009-12-16 13:53:51

Ruby多繼承

2020-11-18 10:06:18

Linux多網卡路由

2025-05-23 08:25:00

maven開發模塊

2022-12-30 08:17:28

Gradle多模塊項目

2013-11-26 16:32:03

MYSQLMYSQL配置

2025-06-26 02:22:00

Spring接口國際化

2025-03-26 03:00:00

2009-06-11 09:35:47

GlassFish配置多機集群

2014-04-29 14:54:48

Nginx反向代理

2021-01-11 09:17:49

GitLabCIMonorepoDocker

2025-03-26 01:25:00

Spring開發JSON
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久国产精品 | 一区二区免费在线观看 | 亚洲国产片 | 91色在线| 国产丝袜一区二区三区免费视频 | 中文字幕中文字幕 | 狼色网 | 欧美日本久久 | 国产日韩欧美在线 | 欧洲国产精品视频 | 一区二区三区四区不卡视频 | 久久久在线视频 | 成人二区| 在线免费黄色小视频 | 国产电影一区二区 | 成人不卡视频 | 国产日韩欧美精品一区二区三区 | 精品国产一区二区三区性色av | 成人在线观看免费观看 | 九九久久久 | 国产精品亚洲成在人线 | 亚洲综合资源 | 激情视频中文字幕 | 久久新| 狠狠干网站 | 91精品国产综合久久久久久丝袜 | 亚洲综合色自拍一区 | 亚洲h在线观看 | 精品三级在线观看 | 久久在线 | 日日夜夜精品视频 | 国产黄色在线观看 | 操射视频| 国产成人综合网 | 成人免费观看视频 | 国产精品一区二区久久 | 国产精品自产av一区二区三区 | 91 在线 | 91在线视频免费观看 | 日韩欧美三级电影在线观看 | 国产精品揄拍一区二区 |