Skip to content

spring-cloud-study 微服务组件学习,包含eureka/zuul/jpa/mybatis plus/feign/websocket/jms/poi/redis/udp等等。

Notifications You must be signed in to change notification settings

mrwangyin/spring-cloud-study

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image image

spring-cloud-study 微服务组件学习

http://blog.csdn.net/moshowgame

工程名 描述 端口
spring-cloud-study-eureka 服务发现与注册中心 8888
spring-cloud-study-zuul 动态转发路由器 7777
spring-cloud-study-demo DEMO项目(含websocket,json,不含jpa) 9999
spring-cloud-study-configcenter 配置中心 5555
spring-cloud-study-jpa JPA(hibernate实现) 4444
spring-cloud-study-feign 微服务远程调用 6666
spring-cloud-study-redis 热点数据缓存 2222
spring-cloud-study-jms JMS(Java消息服务,ActiveMQ实现) 1111
spring-cloud-study-mybatisplus mybatisplus(mybatis的加强版) 3333
spring-cloud-study-poi poi导入 8899
spring-cloud-study-aop aop切面编程 9998
spring-cloud-study-udp netty udp 9898

###一、运行环境


- 版本:Spring-Cloud 2.0
- 环境:JDK1.8(8~10都可以)
- 编码:UTF-8
- IDE:Spring Tool Suit(STS)
 <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
  </properties>

###二、有关项目启动和配置的说明

  1. 最先启动的是spring-cloud-study-eureka,因为它是注册中心,大多数微服务必须依赖于它才能实现必要的功能。
  2. 接着zuul路由中心,启用spring-cloud-study-zuul,并配置yml文件即可(已经带了一点小配置,可根据实际情况修改)。
  3. 然后启用spring-cloud-study-demo,这是一个demo项目
  4. 可以启用spring-cloud-study-configcenter,这里可以从yml或者其他地方读取并统一配置变量
  5. 可以启用spring-cloud-study-jpa,配置一下yml里面数据库连接池的地址,默认是127.0.0.1:3306 root/root, 启动项目可以自动建表,使用init方法可以自动初始化语句,无需自己动数据库
  6. 可以启动spring-cloud-study-feign,他会远程调用demo的内容
  7. 可以单独启动spring-cloud-study-redis需要自己启动一个redis,参考https://blog.csdn.net/moshowgame/article/details/80792774
  8. 可以单独启动spring-cloud-study-jms,已经内置ActiveMQ,也可以自己额外配置,详情请看https://blog.csdn.net/moshowgame/article/details/80836621
    ###三、使用说明

eureka

注册中心这个优先启动,是一切微服务的基础也可以修改配置,进行集群,这里默认单机单例


http://127.0.0.1:8888/eureka 注册中心

zuul

分发方式一,分发搭配/api1,修改yml就可以了,推荐用指定serviceId的
分发方式二,分发路由,直接根据serviceId访问,无需配置
转发的ServiceId是根据项目配置的spring:application:name: spring-cloud-study-demo 来的

http://127.0.0.1:7777/spring-cloud-study-demo/demo/index 自动分发请求
http://127.0.0.1:7777/api2/demo/index 路由转发请求到配置文件配置的/api2上
http://127.0.0.1:7777/api1/demo/socket/222 路由转发请求到配置文件配置的/api1上

demo

正常的访问请求而已,返回json什么的 还支持websocket,对WebSocket不懂的可以看我这个文章https://blog.csdn.net/moshowgame/article/details/80275084

http://127.0.0.1:9999/demo/socket/222 websocket请求页面
http://127.0.0.1:9999/demo/index json数据返回
http://127.0.0.1:9999/demosocket/222 socket请求地址
http://127.0.0.1:9999/basepath获取微服务路径

configcenter

配置中心,用于读取公共配置文件

http://127.0.0.1:5555/getparam获取变量
http://127.0.0.1:5555/application/dev获取application-dev.yml的变量

jpa

已经脱离eureka,需要加入的话自己去掉pom和启动器的eureka相关注释即可。另外,只要数据库连接正常,启动项目可以自动建表,使用init方法可以自动初始化数据,无需自己动数据库

http://127.0.0.1:4444/jpa/user/init/8899初始化8899的用户
http://127.0.0.1:4444/jpa/user/roles/8899获取8899用户的角色

feign

feign用于远程调用微服务,这里用来调用demo的内容,请先启动eureka+demo再启动这个
具体配置可以看我的文章https://blog.csdn.net/moshowgame/article/details/80616624

http://127.0.0.1:9999/demo/getData/222?data=hahahha
http://127.0.0.1:6666/feign/remote/demo/getData/222?data=springcloudstudy远程调用demo
http://127.0.0.1:7777/spring-cloud-study-feign/feign/remote/demo/getData/222?data=springcloudstudybyzuul理由转发+远程调用demo

redis

操作实名参考https://blog.csdn.net/moshowgame/article/details/80792774

【放入缓存】 http://localhost:2222/redis/item/2{"itemId":2,"itemName":"德玛西亚2"}
【放入缓存】 http://localhost:2222/redis/item/3{"itemId":3,"itemName":"德玛西亚3"}
【读取缓存(可以去RedisDesktopManager看一下,已经有数据了)】 http://localhost:2222/redis/item/2{"itemId":2,"itemName":"德玛西亚2"}
【读取缓存(可以去RedisDesktopManager看一下,已经有数据了)】 http://localhost:2222/redis/item/3{"itemId":3,"itemName":"德玛西亚3"}
【放入list缓存】 http://localhost:2222/redis/item/all[{"itemId":666,"itemName":"德玛西亚666"},{"itemId":999,"itemName":"德玛西亚999"}]
【读取list缓存(这是一个空方法,只是因为有了缓存才有数据)】 http://localhost:2222/redis/item/all2[{"itemId":666,"itemName":"德玛西亚666"},{"itemId":999,"itemName":"德玛西亚999"}]
【更新缓存】 http://localhost:2222/redis/item/2/update{"itemId":2,"itemName":"德玛西亚XXX2"}
【重新读取缓存】 http://localhost:2222/redis/item/2{"itemId":2,"itemName":"德玛西亚XXX2"}
【EL表达式指定KEY】 访问地址 http://localhost:2222/redis/item/object?itemId=4&itemName=XXXX 返回结果 {"itemId":4,"itemName":"XXXX"}
【获取缓存(结果不变还是XXXX不是4444)】 访问地址 http://localhost:2222/redis/item/object?itemId=4&itemName=4444 返回结果 {"itemId":4,"itemName":"XXXX"}

jms

概念和操作可以参考https://blog.csdn.net/moshowgame/article/details/80836621

发送消息 http://localhost:1111/jms/email/send控制台显示Received

mybatis-plus

Mybatis-Plus 是一款 Mybatis 动态 SQL 自动注入 Mybatis 增删改查 CRUD 操作中间件, 减少你的开发周期优化动态维护 XML 实体字段,无入侵全方位 ORM 辅助层让您拥有更多时间陪家人。

具体配置可以看我的文章https://blog.csdn.net/moshowgame/article/details/81008485

http://127.0.0.1:3333/mybatisplus/user/init数据初始化
http://127.0.0.1:3333/mybatisplus/user/find通过QueryWarrap构造器查询

poi-tl

很多时候我们网站或者系统需要提供一些word文件,例如证明.docx或者订单.docx等文件供用户下载打印等。

用Java操作word文档,毫无疑问,当下最流行apache poi,对于poi如何操作word文档,这里不作过多介绍。

这里主要讲解如何通过一个制作好的word模板文件,通过数据填充,生成加工好的word文件。

具体可以看我的文章https://blog.csdn.net/moshowgame/article/details/81702029

http://localhost:8899/poi/generateWord通过Word模板生成Word文件

aop

Aspect Oriented Programming(AOP),面向切面编程,是一个比较热门的话题。AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。比如我们最常见的就是日志记录了,不可能每个业务都去加写日志发的功能吧,我们就用切面,将需要记录日志的地方切一下,配置自动记录日志即可。

具体可以看我的文章https://blog.csdn.net/moshowgame/article/details/85814808

http://localhost:9998/aop/index查看控制台AOP情况

aop

UDP是用户数据报协议(User Datagrame Protocol,UDP)的简称,主要作用是将网络数据流压缩成数据报的形式,提供面向事务的简单信息传送服务。

服务端运行方法运行ChineseProverbServer的main方法
客户端运行方法运行ChineseProverbClient的main方法

###四、版本更新

20190122 update:
- 新增基于Netty的UDP模块。
20190105 update:
- 新增AOP模块,可以练习AOP功能。
- 更新SpringBoot到2.0.5版本。
- 更新lombok,修复某些JDK不兼容问题
20181112 update:
- 优化mybatis-plus模块的导入,使用mybatis-plus stater简化操作
20180815 update:
- new POI-TL project
20180711 update:
- new MybatisPlus project
20180627 update:
- new Jms project
20180624 update:
- new Redis project
20180609 update:
- new feign project
- 优化说明
20180603 update:
- new jpa project
- 优化调整
20180602 update:
- 优化调整
- new configcenter project

About

spring-cloud-study 微服务组件学习,包含eureka/zuul/jpa/mybatis plus/feign/websocket/jms/poi/redis/udp等等。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 96.0%
  • HTML 4.0%