一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目
在spring cloud系列章节中,本来已经写了几个章节了,但是自己看起来有些东西写得比较杂,所以重构了一下springcloud的章节内容,新写了本章节,先教大家在工作中如何搭建一个多模块的springcloud项目。
本章及后面章节,我们使用的开发环境是 spring tool suite (sts) + maven (当然你也可以使用IDEA + Gradle,目前使用的公司也很多)。
一、新建一个父maven project模块
File->new->other->maven->maven project
记得勾选红框,我们仅仅只是需要该项目的pom.xml文件
如果生成后,有src文件,我们删除该文件,只保留pom.xml文件
修改pom.xml文件内容
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.haly</groupId><artifactId>springcloud</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><name>springcloud</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring-cloud.version>Greenwich.SR1</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
注意: 很多同学在搭建项目的过程中,引入依赖时,pom文件总是报错,这一般是springboot和springcloud的版本不一致造成。
这个系列所有章节,我们使用的版本为 springboot :2.1.4.RELEASE springcloud:Greenwich.SR1
我们新建这个父工程后,发现它其实只有一个pom文件,没有什么业务功能,但是工作中我们都会新建一个这样的项目目录,它的作用如下
1. 工作中,我们整个项目的名称就是这个maven项目的名称,在svn中拉取项目下,只要拉这个主工程的分支就行了。
2. 它的pom文件会定义为父pom,后续的module工程可以继承该pom,所以很多module工程共用的配置,都可以放到这里。
二、新建一个springcloud-eureka-server子模块
选择主项目springcloud,右键->Maven->new maven module project
生成项目目录结构如下:
注意:有些同学新建子项目完成后,项目的展示都是并排着,没有展示出父子关系,需要调整一个展示形式,才会出现上面的项目结构。
点击上图标红的地方 -> projects Presentation - > Hierarchical
如果生成的springcloud-eureka-server模块没有resources目录
springcloud-eureka-server上右键点击项目-> new->Source Folder
三、新建一个springcloud-eureka-client子模块
参考新建springcloud-eureka-server模块的步骤,新增一个springcloud-eureka-client模块
生成的项目结构如下:
这时,我们去父项目springcloud中打开pom.xml文件,会发现自动增加了新建子模块的引入
<modules>
<module>springcloud-eureka-server</module>
<module>springcloud-eureka-client</module>
</modules>
四、总结:
通过上面的步骤,我们已经搭建好了一个多模块的springcloud项目,但是这仅仅只是一个项目架构,如果需要运行起来,我们还需要做如下三步
1. 修改子模块的pom.xml文件,增加对应模块功能需要的依赖包
2. 在src/main/resources目录下,新增application.properties文件,配置项目的配置项
3. 在src/main/java目录的com.haly包下,新增对应模块的启动类
如何运行多模块springcloud项目,请看下一章节:一起来学Spring Cloud | 第二章:服务注册和发现组件 (Eureka)
转载于:https://www.cnblogs.com/haly/p/10863055.html
一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目相关推荐
- 一起来学Spring Cloud | 第五章:熔断器 ( Hystrix)
在微服务项目中,一个系统可以分割成很多个不同的服务模块,不同模块之间我们通常需要进行相互调用.springcloud中可以使用RestTemplate+Ribbon和Feign来调用(工作中基本都是使 ...
- SpringBoot | 第一章:第一个SpringBoot应用
2019独角兽企业重金招聘Python工程师标准>>> SpringBoot | 第一章:第一个SpringBoot应用 springboot简单介绍 概述 随着动态语言的流行(Ru ...
- 视频教程-①Spring Cloud 第一季(初级入门篇)-Java
①Spring Cloud 第一季(初级入门篇) 2011年毕业后在澳门 遊澳集团(UO Group)旗下某IT科技公司从事 android,php,j2ee开发工作,负责 国际短信发送系统.银联支付 ...
- 告诉老默我想学Spring Cloud了(新手篇):从0到1搭建Spring Cloud项目(实际项目开发的浓缩精华版)
告诉老默我想学Spring Cloud了(新手篇):从0到1搭建Spring Cloud项目 一.前言 二.如何选择版本 2.1 SpringCloud 和 Spring Boot 版本选型 2.1. ...
- 跟我学Spring Cloud(Finchley版)-10-Feign深入
上一节( 跟我学Spring Cloud(Finchley版)-09-Feign )讲了Feign的入门姿势并深入对比了RestTemplate,本节来深入探讨Feign的高级特性.总的来说,Feig ...
- 跟我学Spring Cloud(Finchley版)-07-Ribbon入门
经过前文讲述,我们已经实现了服务发现.本节来解决 跟我学Spring Cloud(Finchley版)-02-构建分布式应用 提到的如下问题: 负载均衡如何考虑?难道得在电影微服务和用户微服务之间加个 ...
- hystrix 全局熔断_跟我学Spring Cloud(Finchley版)14Feign使用Hystrix
Feign默认已经整合了Hystrix,本节详细探讨Feign使用Hystrix的具体细节. 服务降级 1 加配置,默认Feign是不启用Hystrix的,需要添加如下配置启用Hystrix,这样所有 ...
- 跟我学Spring Cloud(Finchley版)-04-服务注册与服务发现-原理剖析
为什么80%的码农都做不了架构师?>>> 第2节( 跟我学Spring Cloud(Finchley版)-02-构建分布式应用 )说过: 地址硬编码问题--电影微服务中将用户微 ...
- 【趣学算法】第一章 算法之美(上)
14天阅读挑战赛 [趣学算法]第一章 算法之美(上) 文章目录 [趣学算法]第一章 算法之美(上) 1.打开算法之门 2.妙不可言---算法复杂性 2.1 算法的引入 [算法的定义] [算法题] [& ...
- 北京邮电大学计算机网络课件,北京邮电大学计算机网络课件第一章:物理层.ppt...
北京邮电大学计算机网络课件第一章:物理层.ppt 计算机网络 第2章物理层 2 第2章物理层 2 1物理层的基本概念2 2数据通信的基础知识2 2 1数据通信系统的模型2 2 2有关信道的几个基本概念 ...
最新文章
- 重大通知:社交系统ThinkSNS+ 发布公告!
- 异常: java.security.InvalidKeyException: Illegal key size
- 阿里云服务器1M带宽是多少
- VC++动态链接库(DLL)编程深入浅出(zz)
- 马思伟:视频领域是个海洋,可以游泳、冲浪、潜水和远航
- linux程序已经在后台运行冻结了_如何使程序在Linux后台运行
- Perl学习笔记(六)--文件(一)
- SQL Server相关知识
- 自然场景文本检测识别技术集合(转)
- 【codevs1220】数字三角形
- 数学家刘徽李善兰陈景润华罗庚
- Mac系统下 安装并使用DOSBox编写汇编语言
- solaris java 安装_solaris中安装jdk环境
- 产品生命周期管理(PLM)
- 实用工具系列 - Pycharm安装下载使用
- 基于量化交易回测的金融股票案例基础知识
- 实时vad(替换webrtcvad)
- 工作 10 年后,我突然决定读硕士了!
- 《金蝶ERP-K/3完全使用详解》—— 导读
- Discuz x2 数据字典
热门文章
- 【转载】 CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)概念区分理解
- Java线程池 面试考点
- 关于《统计学习方法》中第三章构造kd树算法中的中位数问题
- 脏写 脏读 不可重复读 幻读 读偏差 写偏差 丢失更新 示例
- 计算机环境变量win10,Win10系统path环境变量怎么设置
- js百度地图小车html,百度地图web开发(基于javascript)
- Php的入栈,PHP实现的栈数据结构示例【入栈、出栈、遍历栈】
- linux c自写时钟,关于internal_add_timer函数(linux/kernel/timer.c中定义的)的一个问题
- Leetcode之合并区间
- java基础总结06-常用api类-时间日期类