maven 聚合工程 用spring boot 搭建 spring cloud 微服务 模块式开发项目

项目的简单介绍: 项目采用maven聚合工程 用spring boot 搭建 spring cloud的微服务 模块式开发

项目的截图:

 

搭建开始: 能上图 我少打字

1.首先搭建maven的聚合工程

  1.1创建聚合工程的父模块

  

  

  

 

  

  1.2设置父模块的POM文件

  主要是配置 spring boot版本,spring cloud 版本,和一些通用的依赖 比如这里的 lombok依赖

<?xml version="1.0" encoding="UTF-8"?>
<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><groupId>com.cloud</groupId><artifactId>cloud</artifactId><version>1.0-SNAPSHOT</version><!--packing默认是jar类型,<packaging>pom</packaging> 父类型都为pom类型<packaging>jar</packaging> 内部调用或者是作服务使用<packaging>war</packaging> 需要部署的项目--><packaging>pom</packaging><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.3.RELEASE</version><relativePath /> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><org.mapstruct.version>1.2.0.Final</org.mapstruct.version><lombok.version>1.18.4</lombok.version><spring-cloud.version>Finchley.RELEASE</spring-cloud.version></properties><!--dependencyManagement 标签不会引入依赖 --><dependencyManagement><dependencies><!--控制cloud的版本--><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><dependencies><!-- 启用注解读取配置文件支持 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency><!-- lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding><annotationProcessorPaths><path><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></path></annotationProcessorPaths></configuration></plugin></plugins></build>
</project>

2.使用spring boot创建 微服务 的注册中心 eureka

  2.1创建 eureka

  

   

  

  

  

  

  2.2 因为是用 spring boot方式创建的模块 需要修改POM文件的一些配置

  

  

  

  

  2.3 在父模块的POM文件中引入子模块

  

  

  2.4 在application.yml中加入配置

  2.4.1 创建开发环境的 配置文件

      

    2.4.2 添加配置

      application.yml

spring:application:name: boot-eurekaprofiles:#指向开发环境的yml文件active: dev

      application-dev.yml

server:port: 8367
eureka:instance:hostname: localhostserver:  #配置属性,但由于 Eureka 自我保护模式以及心跳周期长的原因,经常会遇到 Eureka Server 不剔除已关停的节点的问题enable-self-preservation: falseeviction-interval-timer-in-ms: 5000peer-eureka-nodes-update-interval-ms: 1000wait-time-in-ms-when-sync-empty: 0# 不向注册中心注册自己client:fetch-registry: falseregister-with-eureka: falseeureka-server-total-connections: 200serviceUrl:defaultZone: http://127.0.0.1:${server.port}/eureka/

 2.4.3 修改启动类

 

  启动后访问 http://127.0.0.1:8367

  出现 下图  eureka配置 启动成功

  

 

   3.创建提供服务的项目

  创建流程和之前是一样 只是 对应的依赖不一样 依赖如下图

  

  创建完成后 修改POM文件 和eureka一样  配置文件一样 两个 

  3.1 添加配置

  application.yml

spring:application:name: boot-serviceprofiles:active: dev

  application-dev.yml

server:port: 7432
eureka:instance:prefer-ip-address: truelease-renewal-interval-in-seconds: 5lease-expiration-duration-in-seconds: 20client:service-url:defaultZone: http://127.0.0.1:8367/eureka/

  3.2 添加方法 这里我简单的写了个测试方法

  

  

  

  启动完成后 eureka会看到刚才启动的服务信息

  

  4.创建 内部暴露服务接口的service-client模块 

  创建流程和上面一样 依赖如下图 

  

 

  创建完成后 修改POM文件 没有  配置文件 这个模块 只是暴露服务 不需要启动

  

  

 

  如果 A服务接口需要调用B服务接口

  在 spring cloud 中 流程如下图

   

 

 

  则需要在 A服务的POM文件中 添加   service-client模块 如下图

  

 

  

 

  

  5.创建 外部暴露给前端的api层

  创建流程一样 依赖如下

  

   

   创建完成后 修改POM文件 和 boot-service一样  配置文件一样 两个 

   POM文件中 把service-client模块 引入

  

  

  

  

  启动后eureka中会显示 如下图

  

  现在 用POSTMAN 测试 访问API层接口

  

 

  可以看到service 被调用

 

  GET请求 可以 这样玩  但是 如果是POST 请求 就需要把请求 对象VO 单独抽离成一个项目  给service ,service-client,api 层使用

 创建vo模块 流程一样 依赖都不需要

  maven 聚合工程 A模块 调用 B模块 需要A模块中引入B模块 

  所以 service ,service-client,api 这3个模块都需要引入 vo模块

  

  vo模块中的vo对象

  

 

  boot-service模块中添加对应的传入对象测试方法

  

 

  

 

  service-client层

  

  api层

  

  POSTMAN 测试 前端 POST请求

  

 

   

  成功接受到对象

 

  谢谢阅读!!! 

  

转载于:https://www.cnblogs.com/wxf-com/p/10731375.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用loadrunner编写webservice接口请求

1、使用工具&#xff1a; loadrunner12&#xff0c;本实例截图中都是loadrunner12工具 2、操作步骤&#xff1a; 1)、新建脚本&#xff0c;选择Web Services协议&#xff1a; 2)、选择工具栏&#xff1a; 3)、点击Import&#xff0c;输入wsdl地址&#xff1a;测试代码用的地址&…

实验二《Java面向对象程序设计》实验报告

一、实验内容 初步掌握单元测试和TDD理解并掌握面向对象三要素&#xff1a;封装、继承、多态初步掌握UML建模熟悉S.O.L.I.D原则了解设计模式 二、实验步骤 &#xff08;一&#xff09;单元测试 1.三种代码&#xff1a;伪代码、测试代码、产品代码需求&#xff1a;在一个MyUtil类…

iOS开发那些事--创建基于故事板的iOS 6的HelloWorld

基于故事板的HelloWorld工程 Storyboard&#xff08;故事板&#xff09;是用来替代xib的技术&#xff0c;也是iOS 5最重要的新特性之一。我们用Storyboard&#xff08;故事板&#xff09;重构HelloWorld。 使用故事板重构HelloWorld 勾选“Use Storyboards”项。 工程创建完成之…

基于美国人口数据分析

https://github.com/jakevdp/PythonDataScienceHandbook 英文看不懂的话请自行选择中文翻译版转载于:https://www.cnblogs.com/Lucifer77/p/10741538.html

MySQL innodb每行数据长度的限制

今天在使用MySQL innodb时&#xff0c;create table时&#xff0c;报出这样的一个错误: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126. You have to change some columns to TEXT or BLOBs 查阅MySQL的官方资料才发现&…

Hibernate实体JSONObject化时遇到的问题

2019独角兽企业重金招聘Python工程师标准>>> ###在对Hibernate持久化的对象进行JSON化的时候&#xff0c;出现了几个问题。 第一个是因为在对象中有相互引用&#xff0c;如A->B,B.set->A这样的一对多关系&#xff0c;使得在遍历构造JSON时&#xff0c;产生了死…

截取中英文字符串

代码 functionsubstr(str, len){if(!str ||!len) { return; }//预期计数&#xff1a;中文2字节&#xff0c;英文1字节vara 0;//循环计数vari 0;//临时字串vartemp ;for(i0;i<str.length;i){if(str.charCodeAt(i)>255){//按照预期计数增加2a2; }else{ a; }//如果增加计数…

mysql概述

MySql大致分为三层结构&#xff1a; 第一层&#xff1a;客户端并非MySql所独有&#xff0c;例如&#xff1a;连接处理、授权认证、安全等功能均在这一层处理 第二层&#xff1a;核心服务包括查询解析、分析、优化、缓存、内置函数(比如 : 时间、数学、加密等函数)&#xff0c;所…

团队项目-需求分析

团队作业-需求分析 这个作业属于哪个课程https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2这个作业的要求在哪里https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2/homework/3105团队名称快乐小分队这个作业的目标完成英语学习app&#xff0c;尽量…

REMarkerClusterer

2019独角兽企业重金招聘Python工程师标准>>> REMarkerClusterer 创建和管理大量的标记每个缩放级别的集群。REMarkerClusterer 受苹果的照片应用程序在iPhone上的启发&#xff0c;模仿它的行为提供分组和取消分组集群的动画。 转载:http://www.adobex.com/ios/sourc…

corosync+openais+pacemaker+web

corosync 和openais 各自都能实现群集功能&#xff0c;但是功能比较简单&#xff0c;要想实现功能齐全、复杂的群集&#xff0c;需要将两者结合起来.corosync 和openais 各自都能实现群集功能&#xff0c;但是功能比较简单&#xff0c;要想实现功能齐全、复杂的群集&#xff0c…

解构领域驱动设计(三):领域驱动设计

在上一部分&#xff0c;分层架构的目的是为了将业务规则剥离出来在单独的领域层中进行实现。再回顾一下领域驱动设计的分层中应用层代码的实现。 Override public void pay(int orderId, float amount) {DesignerOrder order designerOrderRepository.selectByKey(orderId); …

iOS 打包.framework(包括第三方、图片、xib、plist文件)详细步骤及需要注意的地方...

https://www.cnblogs.com/yk123/p/9340268.html // 加载自定义名称为Resources.bundle中对应images文件夹中的图片// 思路:从mainbundle中获取resources.bundleNSString *strResourcesBundle [[NSBundle mainBundle] pathForResource:”Resources” ofType:”bundle”];// 找到…

SQL优化准则

1. 在长时间运行的查询和短查询中使用事务 如果预期有一个长时间运行的查询&#xff0c;并且有大量的数据输出时&#xff0c;开发者就应该在BEGIN TRAN 和END TRAN之间使用事务。 这样事务会在缓冲区缓存为独立事务&#xff0c;并会被分配特定内存&#xff0c;以此来提高处理…

预祝大家2011农历新年快乐,宏“兔”大展,心想事成~

预祝大家2011农历新年快乐&#xff0c;宏“兔”大展&#xff0c;心想事成&#xff5e; 又是一年新年到&#xff0c;预祝大家2011农历新年快乐&#xff0c;宏“兔”大展&#xff0c;心想事成&#xff5e; _____________________________________________________ 以下是附带的……

MySQL中的表压缩功能

MySQL版本&#xff1a;8.0.22 os&#xff1a;linux ubuntu 语言&#xff1a;c、c 在MySQL中支持3种类型的表压缩&#xff0c;依次为&#xff1a;传统压缩、TPC压缩、字典压缩。 第一种&#xff1a;传统压缩 传统的表压缩方式是在MySQL5.0.7之前使用的&#xff0c;现在已经废…

net core体系-web应用程序-4asp.net core2.0 项目实战(1)-11项目日志解决方案

本文目录1. Net下日志记录2. NLog的使用 2.1 添加nuget引用NLog.Web.AspNetCore 2.2 配置文件设置 2.3 依赖配置及调用 2.4 日志类型介绍 2.5 产生的日志文件3. 基于Microsoft.Extensions.Logging封装 3.1 添加引用Microsoft.Extensions.Logging 3.2 实现…

strcasecmp()--忽略大小写比较字符串

strcasecmp()的功能是&#xff1a;忽略大小写比较字符串 头文件 #include <strings.h> 函数原型&#xff1a;int strcasecmp(const char *s1, const char *s2); 函数功能: 用来比较参数s1和s2字符串&#xff0c;比较时会自动忽略大小写的差异。 返回值: 若参数字符串…

基于报文地址的策略路由配置示例

【实验拓扑】本文实验采用的交换机是H3C模拟器&#xff0c;下载地址如下&#xff1a; http://forum.h3c.com/forum.php? modviewthread&tid109740&highlightH3C%E6%A8%A1%E6% 8B%9F%E5%99%A8 有兴趣的朋 友可以在论坛上去下载 【组网需求】普通的报文转发是依据报文的…

MySQL单机版Recycle Bin回收站功能

最近调研了阿里的Recycle Bin回收站功能&#xff0c;可以保证数据不丢失。 为了防止开发或运维人员的误操作&#xff0c;比如DROP TABLE/DATABASE、TRUNCATE TABLE&#xff0c;这类DDL语句不具有可操作的回滚特性&#xff0c;而导致数据丢失,AliSQL 8.0(基于MySQL)新特性支持回…