springCloud项目搭建
新建父maven项目
groupId:pers.xzp.springCloud
artifactId:springCloud
父项目中仅仅需要一个pom文件,用于管理模块的依赖统一、继承等
编辑pom文件
首先项目包结构为:pom
添加依赖声明:依赖声明,不会引入依赖,只有当模块引入依赖坐标的时候才会引入响应依赖
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<!--springcloud版本-->
<spring-cloud.version>Finchley.SR2</spring-cloud.version>
<springboot.version>2.0.6.RELEASE</springboot.version>
</properties>
<!-- dependencyManagement:帮助我们去管理坐标的版本:仅仅声明,不引入依赖-->
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${springboot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!--springboot支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<!--Devtools-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!-- optional=true,依赖不会传递,该项目依赖devtools;之后依赖boot项目的项目如果想要使用devtools,需要重新引入 -->
<!--<optional>true</optional>-->
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork> <!-- 如果没有该生效标志,热部署的devtools不生效 -->
</configuration>
</plugin>
</plugins>
</build>
创建Eureka注册中心模块
Eureka服务端作为服务注册中心
模块名:eureka-registryCenter,端口:7001
引入Eureka服务端依赖
<dependencies>
<!--Eureka服务端支持-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
编辑核心配置文件
server:
#端口
port: 7001
eureka:
instance:
#服务注册中心实列的主机名
hostname: localhost
server:
#关闭自我保护机制,防止失效的服务也被访问
# enable-self-preservation: false
#该配置可以修改检查失效的服务器,每隔5s去扫描检查失效的服务 默认60s
eviction-interval-timer-in-ms: 5000
client:
#是否向服务注册中心注册自己 自己注册了自己就是有毛病
register-with-eureka: false
#是否监测服务 翻译:获取注册
fetch-registry: false
#服务注册中心的配置内容,指定服务注册中心的位置
service-url:
#单机配置 就是访问注册中心的路径
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
创建项目引导类
作为Eureka服务端的引导类,需要被@EnableEurekaServer标注
//@EnableEurekaServer:标注的类表示Eureka服务端,作为注册中心
@EnableEurekaServer
@SpringBootApplication
public class RegistryCenter_7001 {
public static void main(String[] args) {
SpringApplication.run(RegistryCenter_7001.class);
}
}
创建Eureka客户端:服务提供者
模块名字:provider-payment8001 端口号:8001
引入Eureka客户端依赖
<!--eureka客户端支持 我们去写支付功能 服务-->
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
编辑核心配置文件
server:
port: 8001
# Eureka客户端取别名
spring:
application:
name: payment
eureka:
client:
service-url:
# 注册Eureka客户端到服务注册中心 需要与注册中心配置对应
defaultZone: http://localhost:7001/eureka
编码
实体类
@Data
public class User implements Serializable {
private int id;
private String name;
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
public User(int id, String name, Date birthday) {
this.id = id;
this.name = name;
this.birthday = birthday;
}
public User() {
}
}
Controller控制器
//@Slf4j:使用log4j日志需要,默认生成log实例
@Slf4j
@Controller
public class UserController {
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@GetMapping("/getalluser")
@ResponseBody
public String getAllUser(){
User user = null;
try {
user = new User(1,"张三",sdf.parse("2020-10-10"));
} catch (ParseException e) {
log.debug("日期类型转换失败");
}
return user.toString();
}
}
测试
有服务端和客户端,类似WebSocket编程,需要我们先启动服务端;
因此,我们需要先启动Eureka注册中心eureka-registryCenter,然后在启动Eureka客户端provider-payment8001
浏览器输入:http://localhost:7001,会进入了Eureka服务注册中心

输入:http://localhost:8001/getalluser,会访问到服务提供者的数据

输入:http://localhost:7001/getalluser

小结
注册中心可以类比tomcat管理javaweb应用
Eureka有服务端和客户端概念,可以参考WebSocket编程
springCloud项目搭建的更多相关文章
- spring-cloud项目搭建
springCloud项目搭建手册 springcloud应用场景及微服务框架发展趋势 Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的某些常见模式(例如,配置管理,服务发现,断 ...
- 微服务SpringCloud项目架构搭建入门
Spring的微服务框架SpringCloud受到众多公司欢迎,给大家带来一篇框架搭建入门.本次采用的版本是Spring Cloud版本为Finchley.RELEASE. 一.SpringCloud ...
- SpringCloud(7)---网关概念、Zuul项目搭建
SpringCloud(7)---网关概念.Zuul项目搭建 一.网关概念 1.什么是路由网关 网关是系统的唯一对外的入口,介于客户端和服务器端之间的中间层,处理非业务功能 提供路由请求.鉴权.监控. ...
- 基于idea的springcloud的helloworld项目搭建过程整理
Springcloud的搭建主要包括三个部分:服务注册中心.服务提供者.服务消费者.每一个部分都是一个springboot项目,它们通过配置文件(application.properties或appl ...
- 一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目
在spring cloud系列章节中,本来已经写了几个章节了,但是自己看起来有些东西写得比较杂,所以重构了一下springcloud的章节内容,新写了本章节,先教大家在工作中如何搭建一个多模块的spr ...
- 「开源」SpringCloud+vue搭建的商城项目
最近在研究SpringCloud,看到一个基于SpringCloud+vue搭建的模拟商城项目.用来辅助学习SpringCloud企业级开发还是很有帮助的.强烈推荐!! 源码地址在最后. spring ...
- 基于springcloud框架搭建项目-Eureka篇(一)
springcloud项目近年来算是很流行的了,不少公司项目目前都用到了,毕竟优点很多,刚好公司项目用到了,根据自己的理解,简单搭建一下,以便以后学习 这里简单的介绍一下它: SpringCloud, ...
- 从零搭建一个SpringCloud项目之Feign搭建
从零搭建一个SpringCloud项目之Feign搭建 工程简述 目的:实现trade服务通过feign调用user服务的功能.因为trade服务会用到user里的一些类和接口,所以抽出了其他服务需要 ...
- 搭建简单的SpringCloud项目三:问题及解决
GitHub:https://github.com/ownzyuan/test-cloud 前篇:搭建简单的SpringCloud项目一:注册中心和公共层 搭建简单的SpringCloud项目二:服务 ...
随机推荐
- Mono集成中使用api获取当前mono 调用堆栈的方法
// 在mono源代码层级中加如下两个api 可以获取堆栈字符串 这两个api我新加的,原来没有.基于原来的代码改的. // add by bodong#if PLATFORM_WIN32 __dec ...
- 算法专题 | 10行代码实现的最短路算法——Bellman-ford与SPFA
今天是算法数据结构专题的第33篇文章,我们一起来聊聊最短路问题. 最短路问题也属于图论算法之一,解决的是在一张有向图当中点与点之间的最短距离问题.最短路算法有很多,比较常用的有bellman-ford ...
- java 注解开发
目录 注解 JDK自带的注解三个 注解分类 按照运行机制 按照来源分类 自定义注解的语法要求 元注解 解析注解 获取注解的注解 Spring中的注解 组合注解 注解 JDK自带的注解三个 @Overr ...
- Prometheus 与 国产 TDengine 的对比
通过对比,能加深对这两个系统的理解,方便后续架构选型时作出正确决定.他们的设计思路有很多值得借鉴的地方,虽然工作中需要用到这些知识的地方不多,但是了解他们的设计细节能极大满足我的好奇心. 1.场景和需 ...
- openresty(nginx+lua)初识
1.新增项目配置文件: vim /usr/example/example1.conf --将以下内容加入example1.conf server { listen 80; server_name _; ...
- 2020重新出发,NOSQL,redis高并发系统的分析和设计
高并发系统的分析和设计 任何系统都不是独立于业务进行开发的,真正的系统是为了实现业务而开发的,所以开发高并发网站抢购时,都应该先分析业务需求和实际的场景,在完善这些需求之后才能进入系统开发阶段. 没有 ...
- VMware虚拟中输入ifconfig提示not found解决办法
1. 查看虚拟机是否没有IP地址:命令行中输入ip addr,如图红框所示,若无是需要设置. 2. 进入sbin目录确认ifconfig是否安装:可以通过命令[ls | grep 'if']来看 3. ...
- Python3实现zip分卷压缩
Python实现zip分卷压缩 使用 zipfile 库 查看 官方中文文档 利用 Python 压缩 ZIP 文件,我们第一反应是使用 zipfile 库,然而,它的官方文档中却明确标注" ...
- TNFE-Weekly[第七十二周已更新]
前端行业发展飞速,新技术如雨后春笋般快速出现,尤其是各种小程序陆续推出,相关的信息.文章也铺天盖地的遍布在各处,我们有时候会困惑,不知道哪些信息对于自己是有价值的,那么TNFE-腾讯新闻前端团队启动了 ...
- Django+pycharm+mysql 实现用户登录/注册(Django五)
首先是让Django项目与mysql数据库初步建立连接 具体做法见:pycharm连接mysql(注意其中第二步MySQL驱动最好安装最新版的) 这里讲一下我在做这一步遇到的问题.一般Driver 那 ...