在使用spring cloud 项目创建微服务项目时,遇到过很多坑,现在我将整理如下:

条件:Idea 开发工具 maven 项目

1. 创建一个空的mvn项目。

2. 创建完了就添加Module,首先添加一个Module作为项目的父类。

pom文件如下:

<modelVersion>4.0.0</modelVersion>

<groupId>cn.fintecher.pangolin</groupId>
<artifactId>microservice</artifactId>
<version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <modules>
<module>microservice-common</module>
<module>microservice-provider</module>
</modules> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring-cloud.version>Finchley.SR1</spring-cloud.version>
<spring-boot.version>2.0.5.RELEASE</spring-boot.version>
<lombok.version>1.16.18</lombok.version>
</properties> <dependencyManagement>
<dependencies>
<!-- 定义 spring cloud 版本 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 定义 spring boot 版本 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 定义 lombok 版本 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
</dependencies>
</dependencyManagement> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> 3. 创建子模块

注意红色标注的地方为None.后面是可以选的。

4. 注意路径,要在父类的下面。

5. 创建完之后发现父类的<modeules>中没有包含进去

手工包含进去

6. 创建好的pom文件如下:

7. 添加启动类

添加完引入

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency> 启动类引用
这样在启动服务的时候会报

这个是由于没有添加start统一配置,

特别说明,springboot的特性里面就有一个点,Start 全局配置,意思就是你在用其他的包的时候不知道用哪个版本,springbootstart.jar 会帮助你找到最合适的。

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
加入这个pom配置,就可以启动起来了。 8. 使用
@SpringCloudApplication 注解,这个注解封装了@SpringBootApplication

多了一个服务发现和熔断处理

但是引用之后启动会报如下错误。

这个的原因是 spring cloud版本和springboot版本不一致引起的。

修改版本

参考文档:https://stackoverflow.com/questions/53170421/annotation-enablecircuitbreaker-found-but-there-are-no-implementations-did-yo

但是版本对应关系如下:

通过这个图并不能准确的确定版本的对应关系,所以还是要看网上的同学的踩坑分享。

还需要增加一个pom配置

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency> 这样就可以顺利启动起来了。 源码地址:https://github.com/jamesbaoyi/springcloud-sample
源码地址2: https://github.com/jamesbaoyi/luyue-service


												

最新文章

  1. 编译可供C#调用的C/C++动态链接库dll文件
  2. IOS开发基础知识--碎片48
  3. Java transient关键字使用小记
  4. Linux操作系统备份之三:通过二进制拷贝(dd)方式实现Linux操作系统数据的备份
  5. 浅谈设计模式--装饰者模式(Decorator Pattern)
  6. Access-Control-Allow-Origin: Dealing with CORS Errors in Angular
  7. Chapter 4: Tomcat Default Connector
  8. Git 提交后开始自动构建
  9. 【c++内存分布系列】单独一个类
  10. Socket异步发送的同步控制
  11. 【shell】 I/O重定向
  12. C语言中的%0nd,%nd,%-nd
  13. Amazon前技术副总裁解剖完美技术面试
  14. js实现reqire中的amd,cmd功能
  15. [CQOI2018]解锁屏幕
  16. 二、tcp/ip基础知识
  17. 【BZOJ2142】礼物(拓展卢卡斯定理)
  18. freeRTOS中文实用教程3--中断管理之计数信号量
  19. 【LeetCode】236. Lowest Common Ancestor of a Binary Tree
  20. &lt;8&gt;Cocos Creator组件开发cc.Component

热门文章

  1. 《推送开发全面盘点当前Android后台保活方案的真实运行效果》
  2. Java入门总结
  3. 38条技巧优化PHP代码,来复习总结下吧
  4. oracle相邻表记录交换(单双两两交换)
  5. 如何使用SpringBoot封装自己的Starter
  6. 一篇文章,彻底理解ReentrantLock
  7. python爬虫网页解析之lxml模块
  8. linux远程登入/远程上传文件
  9. Python笔记:设计模式之状态模式
  10. 小计C++中的引用和vector