
Spring
文章平均质量分 93
一些关于Spring的博客
不愿意做鱼的小鲸鱼
路漫漫其修远兮,不以物喜,不以己悲,空杯心态,但使愿无违,,,
展开
-
消息通讯——MQTT WebHook&SpringBoot案例
EMQX WebHook 是由 emqx_web_hook (opens new window)插件提供的将EMQX中的钩子事件通知到某个Web服务的功能。WebHook 的内部实现是基于钩子,借助 Webhook 可以完成设备在线、上下线记录,订阅与消息存储、消息送达确认等诸多业务。它通过在钩子上的挂载回调函数,获取到 EMQX 中的各种事件,并转发至 emqx_web_hook 中配置的 Web 服务器。原创 2023-11-15 15:48:19 · 1252 阅读 · 0 评论 -
java导入导出excel数据&图片合成工具
java服务端导入导出excel数据,和图片合成示例原创 2023-04-23 10:45:26 · 1275 阅读 · 0 评论 -
微信公众平台开发(五)——项目&公众号推广好友助力活动
该项目是一个微信积分活动推广的好友助力活动,当好友助力的助力值达到要求后就可以获得为粉丝准备的礼品。原创 2023-04-20 16:58:34 · 856 阅读 · 0 评论 -
微信公众平台开发(三)——微信二维码生成&扫码关注
微信二维码生成是指后端发送请求向微信服务器申请公众号的二维码,用户如果未关注,进行扫描改二维码后即跳转道公众号的关注页面;如果已经关注,扫描二维码后直接进入该微信公众号。当用户扫码时,微信服务器会向后端发送不同类型的扫描事件类型回调,后端可以通过不同情况分别作出响应的处理。原创 2023-03-24 10:49:52 · 2314 阅读 · 0 评论 -
微信公众平台开发(一)——概述&微信消息处理
微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开放接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发。可以理解为微信公众平台开发就是开发者借助微信公众号,将自己的网站或者应用接入微信平台的服务。原创 2023-03-24 09:59:26 · 1068 阅读 · 0 评论 -
微服务(十五)——Sentinel 高可用流量管理框架
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。原创 2022-08-29 11:02:27 · 1488 阅读 · 0 评论 -
微服务(十四)——Nacos集群&mysql持久化
默认Nacos使用嵌入式数据库实现数据的存储。所以,如果启动多个默认配置下的Nacos节点,数据存储是存在一致性问题的。为了解决这个问题,Nacos采用了集中式存储的方式来支持集群化部署,目前只支持MySQL的存储。原创 2022-08-20 05:02:15 · 1775 阅读 · 0 评论 -
微服务(十三)——Nacos入门&Cloud Alibaba
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。原创 2022-08-18 13:55:49 · 324 阅读 · 0 评论 -
Spring学习笔记(三十七)——Flyway 数据库版本控制
Flyway,是一个数据库版本管理工具。每次上线新功能的时候,都需要先更新数据库,然后再部署代码。当数据库的更新部分很多时,难免会忘掉,造成升级失败。另外一个问题的是,当你的服务是允许客户自己私有部署的时候,每个客户可能都在不同的数据库版本上,这时候对于不同的客户给与不同的升级机制就相当重要了。...原创 2022-08-15 15:01:36 · 3270 阅读 · 1 评论 -
微服务(十二)——Steam消息驱动&Sleuth链路监控
Spring Cloud Stream为一些供应商的消息中间件产品提供了个性化的自动化配置实现,引用了发布-订阅、消费组、分区的三个核心概念。原创 2022-08-12 13:39:15 · 569 阅读 · 0 评论 -
微服务(十一)——Config分布式配置中心&Bus消息总线
微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的.........原创 2022-08-05 15:55:47 · 463 阅读 · 0 评论 -
微服务(十)——GateWay新一代网关
Gateway是在Spring生态系统之上构建的API网关服务,基于Spring 5,Spring Boot 2和Project Reactor等技术。Gateway旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能,例如:熔断、限流、重试等。.........原创 2022-08-02 11:49:24 · 674 阅读 · 0 评论 -
微服务(九)——Hystrix服务降级、熔断、限流(下)
熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务出错不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。**当检测到该节点微服务调用响应正常后,恢复调用链路**。......原创 2022-08-01 00:02:26 · 367 阅读 · 0 评论 -
微服务(七)——OpenFeign服务调用
Feign能干什么Feign旨在服务调用时,使编写Java Http客户端变得更容易。前面在使用Ribbon+RestTemplate时,利用RestTemplate对http请求的封装处理,形成了一套模版化的调用方法。但是在实际开发中,由于对服务依赖的调用可能不止一处,往往一个接口......原创 2022-07-07 09:50:04 · 1317 阅读 · 0 评论 -
微服务(六)——Ribbon负载均衡服务调用
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法。官网:Github -原创 2022-07-04 09:51:17 · 511 阅读 · 0 评论 -
Spring学习笔记(三十六)——SpringBoot 实现大文件分片上传、断点续传及秒传
小文件(图片、文档、视频)上传可以直接使用很多ui框架封装的上传组件,或者自己写一个input 上传,利用FormData 对象提交文件数据,后端使用spring提供的MultipartFile进行文件的接收,然后写入即可。但是对于比较大的文件,比如上传2G左右的文件(http上传),就需要将文件分片上传(file.slice()),否则中间http长时间连接可能会断掉。分片上传分片上传,就是将所要上传的文件,按照一定的大小,将整个文件分隔成多个数据块(我们称之为Part)来进行分别上传,上传完...原创 2022-07-01 17:14:39 · 5602 阅读 · 11 评论 -
微服务(三)——Eureka服务注册与发现&Eureka集群
Spring Cloud封装了Netflix 公司开发的Eureka模块来实现服务治理在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。Eureka采用了CS的设计架构,Eureka Sever作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使用Eureka的客户端连接到 Eureka Server并维持心跳连接。这样系统的维护人员就可以通过Eurek原创 2022-06-24 11:33:11 · 440 阅读 · 0 评论 -
微服务(二)——SpringCloud入门&项目搭建
可以阅读以前做的笔记:https://qkongtao.cn/?p=549SpringCloud:分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶Spring Cloud官方文档:https://cloud.spring.io/spring-cloud-static/Hoxton.SR1/reference/htmlsingle/Spring Cloud中文文档:https://www.bookstack.cn/read/spring-cloud-docs/docs-i原创 2022-06-24 10:51:11 · 968 阅读 · 0 评论 -
Spring学习笔记(三十五)——小技巧:配置全局跨域、全局⽇期格式化、读取本地json
目录SpringBoot 设置全局跨域SpringBoot 读取本地jsonSpringBoot全局⽇期格式化SpringBoot 设置全局跨域编写一个config:GlobalCorsConfig.javapackage cn.kt.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.sp原创 2022-05-12 17:43:25 · 300 阅读 · 0 评论 -
RabbitMQ学习笔记(四)——RabbitMQ与SpringBoot适配
目录Spring AMQP特性1. 异步消息监听容器2. RabbitTemplate3. RabbitAdmin4. Spring Boot Config利用RebbitAdmin快速配置Rabbit服务在RabbitConfig中配置RabbitAdmin用来管理RabbitMQ代码实践利用RabbitAdmin简化配置Rabbit服务流程RabbitAdmin声明式配置RabbitAdmin声明式配置的优点代码实践利用RabbitTemplate快速消息发送RabbitTemplate特点代码实践利用原创 2022-05-07 17:44:31 · 1357 阅读 · 0 评论 -
RabbitMQ学习笔记(三)——RabbitMQ 常用高级特性
目录RabbitMQ 常用高级特性如何保证消息的可靠性1. 发送端确认机制什么是发送端确认机制三种确认机制2. 消息返回机制消息返回机制的原理消息返回的开启方法3. 消费端确认机制消费端ACK类型手动ACK类型重回队列4. 消费端限流机制消费端限流原因RabbitMQ - QoSQoS原理消费端限流机制参数设置5. 消息过期机制RabbitMQ的过期时间(TTL)如何找到适合自己的TTL?6. 死信队列什么是死信队列怎样变成死信死信队列设置方法当前项目的不足之处分析实际开发中经验及小结经验小结Rabbi.原创 2022-04-21 00:53:26 · 1051 阅读 · 0 评论 -
RabbitMQ学习笔记(二)——RabbitMQ快速上手
RabbitMQ快速上手的学习案例使用一个高可用外卖系统的demo。目录高可用外卖系统高可用外卖系统需求分析架构设计什么是微服务架构如何拆分微服务根据业务能力进行微服务拆分合理的交换机和队列设置业务流程时序图接口需求微服务的数据库设计原则原生RabbitMQ快速上手步骤RabbitMQ使用总结使用原生RabbitMQ项目中的不足之处消息真的发出去了吗?消息真被路由了吗?消费端处理的过来吗?消费端处理异常怎么办?队列爆满怎么办?如何转移过期消息?不足之处总结实际开发中经验及小结源代码:高可用外卖系统高原创 2022-04-21 00:50:55 · 2828 阅读 · 0 评论 -
Springboot&websocket实现IP数据实时统计
目录需求分析实现策略后台数据策略根据IP获取位置信息的接口遇到的问题websocket无法直接获取建立连接者的ipwebsocket无法注入对象iP详细信息和ua的获取并解析websocket压测实现效果源码下载最近想给自己的博客网站实现一个自定义的数据后台系统,实现对外提供api数据接口,和监控站点的访问数据,并且进行数据的实时可视化出来。这可能是偶然看到一个ip的精准定位的页面引起的我的一点兴趣,通过ip获取获取信号的经纬度,来达到一个实时定位的功能。要实现这些并不难,也刚好可以应用最近学的一些东西原创 2022-01-10 16:48:14 · 3152 阅读 · 1 评论 -
kkFileView在线文件预览项目学习&搭建
目录1. kkFileView介绍2. 源码下载3. 项目启动和配置修改4. 项目打包和部署4.1、打包4.2、部署4.3、文件预览乱码问题5. web中使用API在偶然的翻阅大佬博客的时候,发现一个挺有意思的项目:kkFileView,在线文件预览项目1. kkFileView介绍kkFileView是git的开源在线文件预览项目 支持格式:doc、docx、ppt、pptx、xls、xlsx、zip、rar、mp4、mp3以及众多类文本如txt、html、xml、java、properties、s原创 2021-12-20 16:23:04 · 6810 阅读 · 3 评论 -
SpringBoot集成WebSocket实践&总结
目录WebSocket简介1. 概念2. 特点3. 解决的问题4. WebSocket和Socket的区别与联系5. 使用场景WebSocket的实现SpringBoot整合WebSocket1. pom.xml引入jar包2. 注入WebSocket配置类3. 消息实体类4. WebSocket服务处理类5. ChatController几个接口WebSocket客户端js实现1. 简单的登录页面2. 聊天室通信页面WebSocket简介1. 概念WebSocket是HTML5开始提供的一种在单个T原创 2021-12-07 09:50:43 · 2952 阅读 · 3 评论 -
记一次JPA级联问题&CascadeType详解
目录遇到的问题JPA多对多级联的demoJPA级联操作的详解遇到的问题首先我在用springboot-jpa写一个多对多demo,进行插入数据的时候遇到了如下的问题:detached entity passed to persist大概的意思是该数据插入的时候,使用了级联表中已经有的数据,该条数据的id已经存在,无法继续插入,因此:detached entity passed to persist。这个是什么问题产生的呢?这个问题搞了很久,网上的说法也是千奇百怪,后来突然恍然一悟,为什么会要插原创 2021-10-28 13:20:44 · 1006 阅读 · 0 评论 -
Spring学习笔记(三十四)——Springboot集成Spring Security
目录spring security简介什么是spring securityspring security 核心功能spring security 原理spring security实例初探spring security使用内存中的用户信息基于角色 Role 的身份认证spring security简介什么是spring securityspring security 是基于 spring 的安全框架。它提供全面的安全性解决方案,同时在 Web 请求级和方法调用级处理身份确认和授权。在 Spring原创 2021-10-23 20:10:00 · 339 阅读 · 0 评论 -
Spring学习笔记(三十三)——SpringBoot集成Swagger
目录Swagger相关介绍Swagger的配置和使用1. 添加相关的依赖坐标2. 在配置文件中配置Swagger3. 添加swagger配置类4. 配置Modler对象5. 编写controller层接口6. 测试效果Swagger常用注解1. 用于controller类2. 用于接口方法上(对接口方法的说明)3. 用于Model实体类4. 用于接口方法上(对要提供的参数说明)5. 用于类或者方法上集成Swagger-Bootstrap-UISwagger相关介绍1. Swagger是什么Swagg原创 2021-10-22 11:29:00 · 346 阅读 · 0 评论 -
Spring学习笔记(三十二)——SpringBoot中cache缓存的介绍和使用
目录Spring Boot与缓存什么是cachejava cache:JSR107Spring缓存抽象redis和cache的使用场景和区别SpringBoot缓存的使用0. 开启缓存的注解:@EnableCaching1. 导入数据库文件2. 导入依赖3. 编写配置文件4. 创建javaBean封装类5. 编写dao层6. 编写service层7. 编写控制层8. 编写MyCacheConfig配置类(可选)测试结果整合redis注解缓存并设置时间Spring Boot与缓存什么是cachecach原创 2021-10-21 17:56:12 · 3695 阅读 · 0 评论 -
Spring学习笔记(三十一)——SpringBoot JPA优雅高效的工具:QueryHelp
目录背景QueryHelp介绍QueryHelp的使用步骤0. 目录结构如下1. 建表2. 导入坐标依赖3. 创建工具类注解(重点)4. 创建QueryHelp工具类和PageUtil工具类(重点)5. 配置文件配置MySql6. 配置两个实体类做一对多关联7. 配置Dao层8. 配置Mapstruct9. 配置查询条件QueryCriteria(重点)10. 配置Service层11. 最后配置Controller层小结源码下载背景说一下我目前对数据持久层的看法:在后端开发中,接口开发是一个后端必备原创 2021-09-08 11:46:15 · 3126 阅读 · 5 评论 -
Spring学习笔记(三十)——SpringBoot对象拷贝总结&Mapstruct
目录深拷贝浅拷贝概念浅拷贝深拷贝应用场景区分对象拷贝工具整合Mapstruct工具Mapstruct简介Mapstruct的使用Apache的BeanUtils、Spring的BeanUtils、Mapstruct对比深拷贝浅拷贝概念深拷贝深拷贝相当于创建了一个新的对象,只是这个对象的所有内容,都和被拷贝的对象一模一样而已,即两者的修改是隔离的,相互之间没有影响。浅拷贝浅拷贝也是创建了一个对象,但是这个对象的某些内容(比如A)依然是被拷贝对象的,即通过这两个对象中任意一个修改A,两个对象的A都会原创 2021-09-08 10:03:18 · 2186 阅读 · 1 评论 -
Spring学习笔记(二十九)——SpringBoot Actuator指标监控
目录SpringBoot Actuator简介&使用简介如何使用Actuator Endpoint指标端点1. 最常使用的端点2、Health Endpoint3. Metrics Endpoint4. 管理Endpoints定制 Endpoint端点1. 定制 Health 信息2. 定制info信息3. 定制Metrics信息4. 自定义EndpointSpringBoot Actuator指标监控可视化搭建指标监控可视化项目可视化监控指标展示源码下载SpringBoot Actuator简介原创 2021-08-26 17:31:09 · 1551 阅读 · 0 评论 -
邮箱服务——springboot给女朋友每日专属邮箱(源码)
目录heartemail项目介绍相关技术简介邮件内容(示例)项目使用注意点heartemail项目源码下载heartemail项目介绍本项目是自己给给女朋友做的一个每日邮箱推荐服务。邮箱内容包括:自己想说的话随机每日情话随机每日一则笑话自定义天气预报播报其它内容项目内容大概如下:点击我打开heartemail(手机打开效果更佳)相关技术简介具体可以查看我的相关博客springboot实现邮箱服务springboot定时任务SpringBoot中发送请求和Gson使用邮原创 2021-07-26 18:00:01 · 529 阅读 · 0 评论 -
Spring学习笔记(二十五)——springboot定时任务和Gson、Date、进制等工具的使用
目录SpringBoot定时任务操作步骤@Scheduled参数说明:SpringBoot中发送请求和Gson使用java中发送请求:Gson的使用Gson使用步骤Date一些常用的工具方法1. 获取指定日期加上天数后的日期2. 字符串的日期格式的计算两个日期相差的天数任意进制的转换1. 10进制转32进制的方法2. 32进制转10进制的方法测试结果SpringBoot定时任务在项目开发过程中,我们经常需要执行具有周期性的任务。通过定时任务可以很好的帮助我们实现。spring项目启动后想对一些数据做同原创 2021-07-22 17:16:00 · 643 阅读 · 1 评论 -
Spring学习笔记(二十四)——springboot实现邮箱服务
目录邮箱服务邮箱服务的一些概念开启邮件服务springboot优雅的配置和使用邮箱服务1. 建立邮箱服务数据库2. pom.xml 项目依赖3. application.yml(配置文件)4. EmailConfig.java、EmailContent.java、EmailVO.java(实体类)5. EncryptUtils.java(加密工具类)6. EmailRepository.java(邮箱服务dao层)邮箱服务测试1. 添加邮箱服务数据2. 可以进行发送邮件的测试代码如下:结果如下3. 自定义邮原创 2021-07-22 15:20:09 · 2929 阅读 · 0 评论 -
java——加密、解密算法
目录概述三大类加密算法各算法对比对称加密和非对称加密的区别项目中常用总结代码示例AES、DES加密示例MD5加密示例RSA加密示例概述在项目开发中,我们常需要用到加解密算法,加解密算法主要分为三大类:三大类加密算法1、对称加密算法,如:AES、DES、3DES2、非对称加密算法,如:RSA、DSA、ECC3、散列算法,如:MD5、SHA1、HMAC各算法对比对称加密算法(加解密密钥相同)非对称算法(加密密钥和解密密钥不同)散列算法比较对称与非对称算法比较对称加原创 2021-06-24 15:18:10 · 1759 阅读 · 2 评论 -
消息通讯——MQTT安全认证和测试
目录EMQX安全认证1. 默认方式——匿名认证2. Username 认证插件Username 认证插件增加用户3. EMQX使用MYSQL认证插件1) 配置EMQ MYSQL2) 测试连接认证4. 测试ACL权限控制EMQX安全认证EMQ X 消息服务器的连接认证和访问控制由一系列的认证插件(Plugins)提供,他们的命名都符合 emqx_auth_ 的规则,在 EMQ X 中,这两个功能分别是指:连接认证: EMQ X 校验每个连接上的客户端是否具有接入系统的权限,若没有则会断开该连接;访问控原创 2021-06-08 10:19:43 · 3164 阅读 · 0 评论 -
消息通讯——springboot集成MQTT
目录springboot集成MQTT设计springboot集成MQTT步骤1. 引入pom依赖2. application.properties3. MqttConfiguration.java4. MyMQTTClient.java5. MyMQTTCallback.java6. MqttMsg.java7. MqttController.java8. mqttws31.js9. test.html集成后效果demo源代码MQTT基本使用查看上一篇文章:消息通讯——MQTT的入门和使用springb原创 2021-05-20 16:41:21 · 849 阅读 · 2 评论 -
消息通讯——MQTT的入门和使用
目录Emqx简介MQTT是什么?MQTT实现方式Emqx安装安装步骤Emqx Dashboard插件MQTT 设计了的3 QoS 等级需要开放的端口Emqx使用java使用mqtt使用步骤如下测试效果js使用mqtt引入mqttws31.js代码如下测试效果Emqx简介EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器。EMQ X 设计目标是实现高可靠,并支持承载海量物联网终端的MQTT原创 2021-05-20 14:32:49 · 2272 阅读 · 1 评论 -
图片上传api——chevereto个人图床搭建&后端发送请求
目录chevereto个人图床chevereto图床介绍chevereto图床效果展示chevereto图床搭建步骤使用chevereto图床API开发1. 测试chevereto的api接口(Postman测试)2. 使用Java进行开发图床的图片上传功能3. 测试上传接口后端发送请求的方法源码下载chevereto个人图床chevereto图床介绍Chevereto是一个免费图床建站源码是一个允许用户创建自己的照片展示专题的网站程序,类似于图库,非常适合自己搭建图床平台,易于部署,无需sql数据原创 2021-04-02 00:15:41 · 4488 阅读 · 3 评论