您的位置:首页 > 编程语言 > Java开发

springboot服务构建

2016-09-20 00:00 169 查看
本文从以下三个部分,介绍一个完整的springboot服务的构建和配置

maven依赖和组件管理

maven可以实现对依赖、组件的管理,以及项目的构建,首先我们需要把团队内部重复使用的依赖包、plugin等纳入进来,实现版本的统一管理,方便我们实现对版本的控制,这一步可以看做是第一步的基础工作,基础工作我们会完成parent-pom,日后的业务功能开发,统一使用该pom作为业务功能的parent.

1、创建project-parent名称的maven 工程

2、分别创建springboot、thirdparty两个目录

springboot/pom.xml--用于管理springboot依赖的版本

thirdparty/pom.xml--则用于管理第三方的版本,

根目录下的pom.xml--聚合springboot和thirdparty的pom.xml,作为它的modules,另外的作用是管理常用plugin的版本

3、目录结构如下



4、补充一句众多的springboot使用教程中都是在pom中指定parent为spring-boot-starter-parent、就直接可以在项目中开发了,是否有必要向我这样多此一举手动创建springboot的引用,直接使用不好吗?针对这个问题我的理解是这样的:

4.1因为直接引用一个未知的第三方包作为parent,我们不能直接清楚的知道有哪些依赖,使用版本是什么,和工程内现有的包是否有冲突,这是一方面

4.2另外就是针对一个pom文件只能制定一个parent,如果这个parent被spring-boot-starter-parent所占用,感觉项目是被束缚住了,以后的版本管理不够方便,当然这个问题是有变通的解决方法的,综上两种原因,笔者扒出来spring-boot-starter-parent的依赖,放入到了springboot/pom.xml中

5、切记一定要使用dependencyManagement和pluginManagement,因为业务工程引用你的project-parent,不一定就是所有的依赖都需要引入,是需要根据所需,显示指定的。

组织项目结构

根据业务功能我们要创建一个业务的功能,假如是一个广告平台,则项目代码组织结构如下:

advertisement

-------advertisement-admin(管理后台,主要是web层,pom的parent为advertisement下的pom.xml)

-------advertisement-base(管理后台和业务前台通用的entity、core的封装等,pom的parent为advertisement下的pom.xml)

-------advertisement-common(通用的utils和enum或者constants,pom的parent为advertisement下的pom.xml)

-------advertisement-service(通用的服务,独立出来的目的是,方便扩展,假如以后需要rpc或者thrift发布,pom的parent为advertisement下的pom.xml)

-------advertisement-web(业务前端,主要是web层,pom的parent为advertisement下的pom.xml)

-------pom.xml(聚合以上模块,作为advertisement的modules,该pom的parent为project-parent/pom.xml)

springboot构建

通常我们需要针对不同的环境,实现不同的配置,总结了一下,这里大概有三种实现方式:

1、一个配置文件中多套配置在application中使用profiles指定dev、prod等环境,最后使用命令java -jar my-spring-boot.jar --spring.profiles.active=prod指定激活哪个环境,这个是在运行时指定的。

2、基于spring-boot-maven-plugin的filter过滤(这种方式使用的时候配置文件必须是在src/main/resoure下,多个环境的时候配置文件过多,不进
7fe0
行区分显的比较混乱)或者maven-resources-plugin copy结合profile使用(这种方式比较灵活,自由拷贝,放到哪里都不怕),这两种方式都是在打包时指定的

3、运行时指定文件位置,java -jar myapp.jar --spring.config.location=application.yml

综上所属,实现都比较容易,但是需要考虑日常的部署调试,方案3最安全,是上线部署的不二选择,日常调试可以考虑方案2,本地不存线上配置,上线直接使用方案3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: