小伙伴们在初入职场(尤其大厂)看到别人的工程,是否曾有如下困扰:
紫云网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。成都创新互联成立于2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联。
反观自己创建的工程,代码都堆在一个模块里面,或许还不清楚模块的概念;更别提多环境了;
今天我们一文搞定,让我们离大厂更近一步。
多模块
模块
在模块化编程中,开发者将程序分解成离散功能块(discrete chunks of functionality),并称之为模块。
多模块的优点
每个模块具高内聚的特性,使得校验、调试、测试轻而易举。 精心编写的模块提供了可靠的抽象和封装界限,使得每个模块都具有条理清楚的设计和明确的目的。
实现多模块
创建maven工程
配置多模块
在pom中,增加modules节点,模块名
seckill-api seckill-biz
通常到这里,多模块就配置完毕了。但现实中,我们的模块间是需要相互依赖的,同时每个模块还要依赖第三方模块;
添加模块依赖
seckill-api(api层)要依赖seckill-biz(业务层),在api模块的pom文件中,增加如下配置
com.sifou.courses seckill-biz 1.0-SNAPSHOT
假定,api和biz模块都依赖lombok,validation-api这两个第三方模块(包),如何实现?
相信大家都会选择方案2;在root工程中的pom文件,增加如下配置;
1.18.8 2.0.1.Final org.projectlombok lombok ${lombok.version} javax.validation validation-api ${javax.validation}
到这里,配置完成;(是不是很清晰,请投币,点赞)
还可以用mvn dependency:tree命令,来查看依赖关系(必备核心技能,解决包冲突,解决包版本失效)
- [INFO] Scanning for projects...
- [INFO] ------------------------------------------------------------------------
- [INFO] Reactor Build Order:
- [INFO]
- [INFO] com.sifou.courses.seckill
- [INFO] seckill-biz
- [INFO] seckill-api
- [INFO]
- [INFO] ------------------------------------------------------------------------
- [INFO] Building com.sifou.courses.seckill 1.0-SNAPSHOT
- [INFO] ------------------------------------------------------------------------
- [INFO]
- [INFO] --- maven-dependency-plugin:3.1.2:tree (default-cli) @ com.sifou.courses.seckill ---
- [INFO] com.sifou.courses:com.sifou.courses.seckill:pom:1.0-SNAPSHOT
- [INFO] +- org.projectlombok:lombok:jar:1.18.8:compile
- [INFO] \- javax.validation:validation-api:jar:2.0.1.Final:compile
- [INFO]
- [INFO] ------------------------------------------------------------------------
- [INFO] Building seckill-biz 1.0-SNAPSHOT
- [INFO] ------------------------------------------------------------------------
- [INFO]
- [INFO] --- maven-dependency-plugin:3.1.2:tree (default-cli) @ seckill-biz ---
- [INFO] com.sifou.courses:seckill-biz:jar:1.0-SNAPSHOT
- [INFO] +- org.projectlombok:lombok:jar:1.18.8:compile
- [INFO] \- javax.validation:validation-api:jar:2.0.1.Final:compile
- [INFO]
- [INFO] ------------------------------------------------------------------------
- [INFO] Building seckill-api 1.0-SNAPSHOT
- [INFO] ------------------------------------------------------------------------
- [INFO]
- [INFO] --- maven-dependency-plugin:3.1.2:tree (default-cli) @ seckill-api ---
- [INFO] com.sifou.courses:seckill-api:jar:1.0-SNAPSHOT
- [INFO] +- com.sifou.courses:seckill-biz:jar:1.0-SNAPSHOT:compile
- [INFO] +- org.projectlombok:lombok:jar:1.18.8:compile
- [INFO] \- javax.validation:validation-api:jar:2.0.1.Final:compile
- [INFO] ------------------------------------------------------------------------
- [INFO] Reactor Summary:
- [INFO]
- [INFO] com.sifou.courses.seckill .......................... SUCCESS [ 1.007 s]
- [INFO] seckill-biz ........................................ SUCCESS [ 0.040 s]
- [INFO] seckill-api ........................................ SUCCESS [ 0.036 s]
- [INFO] ------------------------------------------------------------------------
- [INFO] BUILD SUCCESS
- [INFO] ------------------------------------------------------------------------
- [INFO] Total time: 1.862 s
- [INFO] Finished at: 2020-10-29T23:18:09+08:00
- [INFO] Final Memory: 27M/230M
- [INFO] ------------------------------------------------------------------------
- Process finished with exit code 0
多环境
在工作中,我们面临开发、测试、生产等等多个环境,要完美实现多环境,总共可以分文两个大的步骤;
支持多环境配置
创建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配置文件内容
多环境启动
刚刚讲了在工程中如何配置,那么在真正的环境中如何启动?莫非,改配置吗???当然不是,正解如下。
- -Dspring.profiles.active=${PROFILE}
在启动脚本中,增加上面这个,按环境来指定要加载的配置文件;
以上,欢迎大家多交流。
最后
我在思否开了一门《大厂电商 Java 秒杀系统架构实战》课程,本课程从秒杀场景出发,分为基础篇、进阶篇、架构篇3部分。
通过秒杀这个典型的高并发场景,带你彻底搞明白高并发系统该如何设计。
当前名称:SpringBoot-多模块多环境配置,大厂必备技能
地址分享:http://www.shufengxianlan.com/qtweb/news6/26006.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联