Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

SpringBootLearning,SpringCloudStudy,学习SpringBoot2/SpringCloud2的项目,包含Eureka/Zuul/JPA/Mybatis Plus/Feign/WebSocket/JMS/POI-TL/Redis Cache/UDP/SecurityJWT/elasticSearch/Drools

Notifications You must be signed in to change notification settings

longgui-git/spring-cloud-study

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image image Build Status

SpringBootLearning && SpringCloudLearning

SpringBoot+微服务学习项目。
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-study-netty-websocket netty实现websocket 6688
spring-cloud-study-security spring-security-demo自定义授权 9999
spring-cloud-study-security-jwt spring-security-JWT授权 9999
spring-cloud-study-elasticsearch spring-data-elasticsearch,强大的搜索和分析引擎 9999
spring-cloud-study-drools drools(jboss rules)强大的业务规则引擎 9999
spring-cloud-study-logstash springboot2+logback+logstash+elasticsearch+kibana打造强大的日志收集分析系统 9999

一、运行环境


- 版本:SpringCloud/SpringBoot 2.X
- 环境:JDK8/11
- 编码:UTF-8
- IDE:Spring Tool Suit(STS)/IDEA(推荐)/VSCode with STS(New)
 <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
  </properties>

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

  • 由于子项目太多,暂时移除所有模块的引用,有需要请再父项目的module中启用
  • 其他未提及模块均为springboot,可独立启动,可不依赖eureka注册中心。
  • 微服务模块,请先启动spring-cloud-study-eureka,因为它是注册中心,大多数微服务必须依赖于它才能实现必要的功能。
  • zuul路由中心(后续会升级为ApiGateway),启用spring-cloud-study-zuul,并配置yml文件即可(已经带了一点小配置,可根据实际情况修改)。
  • 按需启用spring-cloud-study-demo/spring-cloud-study-configcenter/spring-cloud-study-jpa/spring-cloud-study-feign等等

三、使用说明

Eureka

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


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

Zuul(@Deprecated,应该用ApiGateway了)

API网关/路由,ZUUL是阻塞的,APIGateway是NIO的。
分发方式一,分发搭配/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

JPA是一个标准,Hibernate是实现,实现简单、强大的CRUD功能。已经脱离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/SpringCache

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

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

JMS/ActiveMQ

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

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

Mybatis-Plus 3

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 Model

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

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

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

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

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

Spring AOP

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

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

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

Netty-UDP

UDP是用户数据报协议(User Datagrame Protocol,UDP)的简称,主要作用是将网络数据流压缩成数据报的形式,提供面向事务的简单信息传送服务。
具体可以看我的文章https://blog.csdn.net/moshowgame/article/details/88420880

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

Netty-WebSocket

基于Netty的Websocket,稳定性性能秒杀原生。
具体可以看我的文章https://blog.csdn.net/moshowgame/article/details/91552993

http://127.0.0.1:6688/netty-websocket/index运行多个查看结果

Spring-Security-Filter

基于spring-security的自定义登录模块。

http://127.0.0.1:9999/security/index首页
http://127.0.0.1:9999/security/login登录页面
http://127.0.0.1:9999/security/user/list需要授予USER权限访问的页面

Spring-Security-JWT

基于spring-security-jwt授权模块。详情请看https://blog.csdn.net/moshowgame/article/details/96476554

http://127.0.0.1:9999/security/auth登录接口,json body是{"username":"users","password":"pass"}
http://127.0.0.1:9999/security/token获取Token信息,Header是Authorization:Bearer +Token

Spring-Data-ElasticSearch

基于spring-boot-starter-data-elasticsearch的搜索和分析引擎模块。详情请看https://blog.csdn.net/moshowgame/article/details/96768494

http://127.0.0.1:9999/es/save新增记录
http://127.0.0.1:9999/es/search搜索记录

Springboot2+Drools

Drools是一个易于访问企业策略、易于调整以及易于管理的开源业务规则引擎,特点就是速度快、效率高。 如果你还在使用复杂的JAVA代码校验复杂的优惠券/超市打折/计价规则/商品定价/阶梯定价/游戏规则/业务规则?试试用Drools来解救代码吧,适用但不仅仅包含以上场景。详情请看https://blog.csdn.net/moshowgame/article/details/98061651

http://127.0.0.1:9999/drools/taxi/cal?distanceInMile=18打车18公里
http://127.0.0.1:9999/drools/taxi/cal?distanceInMile=2打车2公里
http://127.0.0.1:9999/drools/taxi/cal?distanceInMile=3.5打车3.5公里

SpringBoot2+Logback+Logstash+ElasticSearch+Kibana

Logstash收集AppServer产生的Log,并存放到ElasticSearch集群中,而Kibana则从ES集群中查询数据生成图表,再返回给Browser。详情请看https://blog.csdn.net/moshowgame/article/details/98851656

http://127.0.0.1:9200ElasticSearch查看运行情况
http://127.0.0.1:9999/logstash输出Log日志
http://127.0.0.1:5601/app/kibanakibana查看日志

四、版本更新



更新时间 更新内容
20190810 - 新增SpringBoot2+Logback+Logstash+ElasticSearch+Kibana打造强大的日志收集分析系统。
20190802 - 新增Spring-Drools业务规则引擎模块。
- 由于子项目太多,暂时移除所有模块的引用,有需要请再父项目的module中启用
- empty为空白项目,可以直接copy出来改一下当新模块使用
新增Travis CI
20190722 - 新增Spring-Data-ElasticSearch授权验证模块。
20190720 - 新增SpringSecurity-JWT授权验证模块。
20190716 - 新增SpringSecurity自定义登录模块。
20190612 - 新增基于Netty的WebSocket模块。
20190122 - 新增基于Netty的UDP模块。
20190105 - 新增AOP模块,可以练习AOP功能。
- 更新SpringBoot到2.0.5版本。
- 更新lombok,修复某些JDK不兼容问题
20181112 - 优化mybatis-plus模块的导入,使用mybatis-plus stater简化操作
20180815 - 新增POI-TL模块,POI根据Word模板输出文件
20180711 - 新增MybatisPlus3.0模块,比Mybatis更简单爆炸
20180627 - 新增JMS模块,ActiveMQ实现,订阅/消费
20180624 - 新增Redis模块,完美集成SpringCache
20180609 - 新增Feign模块,MicroService之间相互调用
- 优化说明
20180603 - 新增JPA模块,Hibernate实现,基于实体,简单CRUD
- 优化调整
20180602 - 优化调整
- 新增configcenter模块,集中式配置管理

About

SpringBootLearning,SpringCloudStudy,学习SpringBoot2/SpringCloud2的项目,包含Eureka/Zuul/JPA/Mybatis Plus/Feign/WebSocket/JMS/POI-TL/Redis Cache/UDP/SecurityJWT/elasticSearch/Drools

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 95.9%
  • HTML 4.1%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.