![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
SpringBoot
文章平均质量分 80
包含SpringBoot相关的内容
Liu_Shihao
Null
展开
-
Zookeeper原生API和Curator两种方式实现ZK分布式锁
Zookeeper如何实现分布式锁?本文记录一下如何使用Zookeeper原生API和Curator的API两种方式实现分布式锁。原创 2022-11-02 22:57:17 · 732 阅读 · 0 评论 -
Zookeeper客户端Curator5.1节点事件监听CuratorCache用法
在低版本的curator(4.0.1)中,使用NodeCache、、TreeCache进行节点事件的监听。使用新的类进行监听。NodeCache:只能监听自己节点的PathChildrenCache: 只能监听直接子节点的TreeCache:可以监听自己节点及其所有子节点的事件CuratorCache:可以监听自己节点及其所有子节点的事件。原创 2022-10-27 17:12:26 · 2310 阅读 · 0 评论 -
SpringBoot整合Elasticsearch实现分页条件查询及注意事项
SpringBoot整合Elasticsearch实现分页条件查询及注意事项原创 2022-06-29 23:09:12 · 2262 阅读 · 1 评论 -
记一次SpringBoot项目使用RedisTemplate无法反序列化字节数组问题困扰8小时巨坑
一、问题描述问题描述:前提:向Redis中SET值的是一个JFinal项目,使用的Jedis客户端API操作的,把一个对象转成byte[]形式存入Redis中。然后在另一个SpringBoot项目中我通过Spring自带的RedisTemplate对象来获取,一直失败。接下来就是我的踩坑记录:二、踩坑记录使用StringRedisTemplate获取值(即采用StringRedisSerializer序列化方式)然后我使用命令行获取去发现返回同样是乱码:又换成Jackson2JsonR原创 2022-04-23 00:29:22 · 2176 阅读 · 0 评论 -
SpringCloud微服务API网关Gateway的使用和配置(二)过滤器
目录一、介绍二、配置StripPrefixPrefixPathAddRequestHeaderAddRequestParameterAddResponseHeaderDedupeResponseHeaderSpringCloud微服务API网关Gateway的使用和配置(一)路由转发、断言谓词:https://blog.csdn.net/DreamsArchitects/article/details/119330223一、介绍本章学习一下Gateway的过滤器的用法。所有的过滤器都是Gateway原创 2021-08-17 10:15:13 · 4458 阅读 · 0 评论 -
RabbitMQ使用方法最详细攻略
本文内容主要包括: 1. RabbitMQ的安装部署2. AMQP架构3. RabbitMQ的通信方式4. RabbitMQ整合SpringBoot5. RabbitMQ保证消息可靠性6. RabbitMQ死信队列和延时交换机7. RabbitMQ集群高可用原创 2022-03-17 12:21:55 · 3350 阅读 · 0 评论 -
Java处理图片和视频文件——视频抽帧与图片压缩
目录一、简介二、实现2.1 依赖2.2 视频抽帧(截取封面)2.3 图片压缩三、源码一、简介环境:SpringBoot 2.2.2.RELEASE、Java8、Mavenpom依赖:thumbnailator(处理图片)、javacv-platform(处理视频)二、实现2.1 依赖 <!--图片压缩--> <dependency> <groupId>net.coobird</groupId> <artifactId原创 2022-01-20 16:39:56 · 3411 阅读 · 0 评论 -
Netty的WebSocket协议实现服务端与客户端即时通信及问题总结
目录一、介绍二、问题2.1 启动服务端方式2.2 客户端连接对象存储问题2.3 服务端主动与客户端通信2.4 @Sharable 注解三、实现四、附录4.1 pom文件4.2 SpringUtils一、介绍技术栈:Java:1.8SpringBoot:2.2.2.RELEASENetty:4.1.32.Final基础了解可参考文章:https://blog.csdn.net/DreamsArchitects/article/details/120177336当前时间:2021年12月31日1原创 2021-12-31 17:10:59 · 1480 阅读 · 0 评论 -
SpringBoot RedisConfig配置standalone、cluster、sentinel模式
目录一、简介二、代码2.1 依赖2.2 YML配置文件2.3 RedisConfig一、简介使用RedisConfig配置类的方式进行Redis standalone(单节点)、cluster(主从集群)、sentinel(哨兵集群)的灵活配置。二、代码2.1 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>原创 2021-11-23 15:32:00 · 6334 阅读 · 0 评论 -
MessageSource类的使用(i18n国际化支持)
目录一、简介二、代码实现2.1 messages.properties2.2 yml2.3 MessageUtils获取国际化三、测试四、附录SpringUtils一、简介i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数)是“国际化”的简称。通常与i18n相关的还有L10n(“本地化”的简称)。在我们开发WEB项目的时候,项目可能涉及到在国外部署或者应用,也有可能会有国外的用户对项目进行访问,那么在这种项目中, 为客户展现的页面或者操作的信息就需原创 2021-09-22 13:56:51 · 6927 阅读 · 0 评论 -
@Validated注解校验参数解释
限制说明@Null限制只能为null@NotNull限制必须不为null@AssertFalse限制必须为false@AssertTrue限制必须为true@DecimalMax(value)限制必须为一个不大于指定值的数字@DecimalMin(value)限制必须为一个不小于指定值的数字@Digits(integer,fraction)限制必须为一个小数,且整数部分的位数不能超过integer,小数部分的位数不能超过fraction@Future限制必须是一个将来的日期@Max(value)限制必须为一原创 2021-08-10 11:58:06 · 2565 阅读 · 0 评论 -
SpringCloud微服务API网关Gateway的使用和配置(一)路由转发、断言谓词
文章目录一、介绍二、Gateway依赖三、 Gateway网关的yml配置自动转发配置跨域配置全局http超时配置route (路由)配置lb://微服务名实现负载均衡predicates (断言/谓词)配置PathQueryHeaderMethodCookieAfter、Before、BetweenWeightHost 、RemoteAddrfilters(过滤器)配置PrefixPathStripPrefix四、完整yml配置五、源码一、介绍实现微服务网关的技术有很多。nginxNginx(e原创 2021-08-03 15:42:40 · 1114 阅读 · 0 评论 -
SpringBoot的RestTemplate的各种请求(GET、POST、PUT、DELETE)用法示例
这里写目录标题一、介绍GET 请求getForObjectgetForEntityPOST 请求postForEntitykey/value格式JSON格式postForObjectpostForLocationPUT 请求DELETE 请求exchange 通用方法一、介绍RestTemplate 是从 Spring3.0 开始支持的一个 HTTP 请求工具,它提供了常见的REST请求方案的模版,例如 GET 请求、POST 请求、PUT 请求、DELETE 请求以及一些通用的请求执行方法 excha原创 2021-08-02 12:47:28 · 3867 阅读 · 0 评论 -
分布式事务seata——使用nacos作为配置中心
文章目录一、版本介绍二、启动Nacos在启动seata服务以前,需要先把相关的配置先推送到nacos上启动seata-server启动客户端一、版本介绍Nacos:1.2.0Seata:1.2.1框架版本SpringBoot2.2.5SpringCloudHoxton.SR3SpringCloudAlibaba2.2.1Sentine1.7.1Nacos1.2.1Seata1.2.0二、启动Nacoshttps://github.原创 2021-07-01 10:20:11 · 1431 阅读 · 2 评论 -
SpringCloudAlibaba——Sentinel工作原理解析
目录一、Sentinel 功能和设计理念1.1 什么是流量控制1.2 什么是熔断降级二、Sentinel工作主流程三、Sentinel 核心类解析3.1 ProcessorSlotChain3.2 Context3.3 Entry3.4 Node3.5 StatisticSlot四、手撕源码组件版本关系:一、Sentinel 功能和设计理念1.1 什么是流量控制流量控制在网络传输中是一个常用的概念,它用于调整网络包的发送数据。然而,从系统稳定性角度考虑,在处理请求的速度上,也有非常多的讲究。任意原创 2021-06-28 17:30:27 · 810 阅读 · 0 评论 -
SpringCloudAlibaba——Sentinel(四)定义资源与定义规则
目录一、介绍二、定义资源2.1主流框架的默认适配(SpringBoot)Fegin支持RestTemplate 支持动态数据源支持Zuul 支持Spring Cloud Gateway 支持2.2 抛出异常的方式定义资源2.3 返回布尔值方式定义资源2.4 注解方式定义资源2.5 异步调用支持三、规则的种类3.1 流量控制规则 (FlowRule)3.2 熔断降级规则 (DegradeRule)3.3 系统保护规则 (SystemRule)3.4 访问控制规则 (AuthorityRule)3.5 热点规则原创 2021-06-28 15:50:12 · 599 阅读 · 0 评论 -
SpringCloudAlibaba——Sentinel与SpringBoot整合
目录一、介绍二、如何使用2.1 引入依赖2.2 Sentinel 控制台2.3 Fegin支持2.4 RestTemplate 支持2.5 网关限流2.5.1 Zuul 支持2.5.2 Spring Cloud Gateway 支持2.6 Endpoint 支持2.7 配置一、介绍随着微服务的流行,服务和服务之间的稳定性变得越来越重要。 Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特征:丰富的应用场景: Sentin原创 2021-06-28 10:37:14 · 1722 阅读 · 0 评论 -
关于若依管理系统配置多数据源的原理分析
目录一、pom依赖二、yml配置文件三、自定义切换数据源注解四、定义AOP切面切换数据源五、读取Druid连接池配置六、Druid多数据源配置类七、配置动态数据源八、操作数据源类九、数据源类型枚举类总结流程解释:一、pom依赖 <!-- druid连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId>原创 2021-05-20 17:58:39 · 3691 阅读 · 0 评论 -
深入学习Redis_(五)使用Redisson整合SpringBoot实现分布式锁
文章目录一、依赖二、yml配置2.1 Redis集群2.2 单机三、Redisson配置类3.1 集群Redisson配置类3.2 单机Redisson配置类四、加锁使用redisson的redis客户端,就不用在手动结合Lua脚本实现Redis分布式锁并保证原子性了。因为Redisson底层已经封装好了lua脚本深入学习Redis_(三)事务、分布式锁、消息队列、延时队列等深入学习Redis_(四)Redis与Lua脚本一、依赖注意:还有一个redisson-spring-boot-start原创 2021-03-18 15:19:42 · 358 阅读 · 0 评论 -
SpringBoot结合Dubbo+Zokeeper实现服务调用
目录一、依赖二、Server服务端2.1 启动类2.2 yml配置文件2.3 Controller2.4 Server2.5 ServerImpl三、Client调用端3.1 启动类3.2 yml配置文件3.3 Controller3.4 ServerClientServerUserServer3.5 ServerImpl四、测试一、依赖 <parent> <groupId>org.springframework.boot</groupId>原创 2021-03-08 15:57:42 · 343 阅读 · 1 评论 -
使用IDEA插件——EasyCode代码生成工具
一键生成Controller、Service、ServiceImpl、实体类、Mapper接口、Mapper.xml文件原创 2021-03-02 10:38:52 · 401 阅读 · 1 评论 -
使用@LogRecordAnnotation注解搞定SpringBoot操作日志
源码仓库https://github.com/mouzt/mzt-biz-log直接用法直接使用@LogRecordAnnotation注解即可记录日志。 /** * pefix:是拼接在 bizNo 上作为 log 的一个标识。避免 bizNo 都为整数 ID 的时候和其他的业务中的 ID 重复。比如订单 ID、用户 ID 等 * bizNo:就是业务的 ID,比如订单ID,我们查询的时候可以根据 bizNo 查询和它相关的操作日志 * success:方法调用成功后原创 2021-02-26 15:20:29 · 4805 阅读 · 1 评论 -
SpringBoot自定义注解+AOP实现用户操作行为记录
文章目录一、介绍二、pom依赖三、自定义注解四、切面类五、实体类六、Controller测试一、介绍需求:使用AOP切面,将用户所有的操作行为记录下来。二、pom依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <vers原创 2021-02-26 12:50:17 · 753 阅读 · 0 评论 -
SpringBoot完整logback-spring.xml文件
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE xml><configuration scan="true" scanPeriod="30 seconds"> <include resource="org/springframework/boot/logging/logback/defaults.xml" /> <springProperty scope="co.原创 2020-12-30 14:17:24 · 373 阅读 · 0 评论 -
基于OkHttp构建的RestTemplate
OKHttpOkHttp是轻量的 Java 网络请求框架。依赖 <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.14.9</version> </dependency>GE原创 2020-12-18 15:20:50 · 2901 阅读 · 0 评论 -
SpringBoot的异步事件的用法
主要注解@EnableAsync 启用异步@Async 异步注解ApplicationEventPublisher发布事件在Controller中注入ApplicationEventPublisher用来发布事件/** * 注入ApplicationEventPublisher用来发布事件 */ @Resource private ApplicationEventPublisher publisher;使用publisher.publishEvent原创 2020-12-17 17:00:36 · 803 阅读 · 0 评论 -
SpringBoot多数据源配置插件dynamic-datasource-spring-boot-starter的使用
dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。其支持 Jdk 1.7+, SpringBoot 1.4.x 1.5.x 2.x.x。Gitee地址: baomidou / dynamic-datasource-spring-boot-starter约定本框架只做 切换数据源 这件核心的事情,并不限制你的具体操作,切换了数据源可以做任何CRUD。配置文件所有以下划线 _ 分割的数据源 首部 即为组的名称,相同原创 2020-12-15 17:35:08 · 3904 阅读 · 1 评论 -
SprintBoot使用@Vaildated注解进行参数校验、全局异常处理以及注解校验不生效问题
我使用的SpringBoot版本为2.3.4.RELEASE,无法使用@NotNull注解,可能是版本问题,需要手动导入依赖。导入依赖 <!--@Validated参数校验 START--> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId>原创 2020-12-09 18:15:24 · 1909 阅读 · 0 评论 -
SpringBoot使用RedisTemplate简单操作Redis的五种数据类型
一、介绍Spring 封装了 RedisTemplate 来操作 Redis,它支持所有的 Redis 原生的 API。在 RedisTemplate 中定义了对5种数据结构的操作方法。opsForValue():操作字符串。opsForList():操作列表。opsForHash():操作哈希。opsForSet():操作集合。opsForZSet():操作有序集合。引入依赖 <parent> <groupId>org.springframework原创 2020-12-09 15:26:31 · 1334 阅读 · 4 评论 -
HttpClient工具类的使用
文章目录一、介绍二、导入依赖三、工具类四、使用方式一、介绍使用传统JDK自带的URLConnection是有些不方便的。所以我们使用HttpClient。HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。二、导入依赖 <dependency> <groupId>org.apache.h原创 2020-11-25 14:44:20 · 944 阅读 · 1 评论 -
使用QRcodejs.JS生成二维码
文章目录一、js插件地址二、创建项目导入依赖引入js页面Controller主启动类拦截器放行静态资源三、效果一、js插件地址qrcode.js插件Github仓库地址下载zip解压二、创建项目SpringBoot项目导入依赖 <!-- SpringBoot--> <parent> <groupId>org.springframework.boot</groupId> <artifactId原创 2020-11-25 14:16:34 · 411 阅读 · 1 评论 -
SpringSecurityOauth2授权模式与使用RSA非对称加密方式生成公钥私钥
文章目录一、用户认证分析1.1 认证与授权身份认证用户授权1.2 单点登录1.3 第三方登录二、认证技术方案了解(单点登录+第三方授权认证)2.1单点登录技术方案2.2 Oauth2认证三、SpringSecurity Oauth2.0入门导入依赖Oauth2授权模式授权码模式授权四、公钥私钥加密解密生成证书mac下载openssl安装openssl方式一 使用brew命令安装openssl方式二导出公钥基于私钥生成jwt令牌一、用户认证分析上面流程图描述了用户要操作的各个微服务,用户查看个人信息需要原创 2020-11-17 18:11:56 · 5085 阅读 · 0 评论 -
使用SpringSession+Redis实现共享Session以及使用Fegin调用导致Session丢失的问题
一、Session 共享在分布式微服务中,经常会部署集群服务,如果我们在8001服务登陆了,如果使用SpringSessing在8002服务、8003服务的时候就不需要再次登陆啦。导入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dep原创 2020-11-11 23:16:56 · 678 阅读 · 0 评论 -
SpringBoot使用SpringSecurity(三)_登录及退出管理
学习SpringSecurity 第三集一、自定义认证成功、失败处理CustomAuthenticationSuccessHandlerCustomAuthenticationFailureHandlerSpringSecurityConfig配置类测试二、退出登录SpringSecurityConfig配置类LogoutSuccessHandler微信公众号学习SpringSecurity 第一集学习SpringSecurity 第二集一、自定义认证成功、失败处理在SpringSecurityCo转载 2020-11-11 17:05:32 · 972 阅读 · 1 评论 -
SpringBoot使用SpringSecurity(二)_使用注解以及更细粒度权限控制
学习SpringSecurity第二集一、密码加密启动类注入BCryptPasswordEncoder业务类SpringSecurityConfig二、开启SpringSecurity注解三、更细粒度权限控制_授权数据库建表数据访问层业务层业务层实现类创建MyPermissionEvaluatorImpl实现PermissionEvaluator接口将自定义的MyPermissionEvaluatorImpl注入SpringSecurityConfig配置类application.ymlController原创 2020-11-10 23:12:15 · 1296 阅读 · 0 评论 -
学习SpringBoot使用SpringSecurity(一)_表单登录、角色认证以及SpringSecurity导致CSS样式丢失问题
文章目录一、 环境准备导入依赖创建数据库准备页面index.htmlhome.htmlyml配置文件实体类数据访问层业务层业务层实现类二、UserDetailsService三、WebSecurityConfigBug CSS样式丢失一、 环境准备用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。用户授权指的是验证某个用户是否有权限执行某个操作。spring security的主要核心功能为 认证和授权,所有的权限架构也是基于这两个核心功能去实现的。 “认证”,是为原创 2020-11-09 21:11:38 · 843 阅读 · 0 评论 -
SpringBoot整合SpringMVC的拦截器、数据源、Mybatis以及Mybatis配置多数据源
文章目录一、整合拦截器1. 创建自定义拦截器2. Config配置类二、整合数据源三、整合MybaitControllerServiceMapper 接口一、整合拦截器1. 创建自定义拦截器package com.lsh.interceptor;import org.springframework.stereotype.Component;import org.springframework.web.servlet.HandlerInterceptor;import javax.servle原创 2020-11-05 18:38:57 · 533 阅读 · 3 评论 -
SpringSecurity加密解密以及使用JWT鉴权
文章目录一、主要内容二、SpringSecurity加密解密1.pom依赖2.SpringSecurity配置类3.Controller4.Service5.Repository6.Model三、JWT1.JWT的组成头部载荷签名登录生成token以后每次访问的认证2.Java的JJWT认证实现测试类代码封装JwtUtil工具类3.修改登陆逻辑4.操作鉴权ControllerServiceServiceImpl测试:四、使用拦截器实现token鉴权1.自定义拦截器2.将自定义拦截器注册进Spring容器一原创 2020-11-03 17:04:37 · 1791 阅读 · 1 评论 -
使用Logstash收集日志输出到ES通过Kibana做日志分析
文章目录一、安装ES、Logstash、Kibana二、配置yml三、配置logback_spring.xml日志文件四、配置logstash信息启动测试启动es启动Logstash启动Kibana一、安装ES、Logstash、Kibana安装步骤略过docker pull elasticsearch:7.8.0docker pull logstash:7.8.0docker pull kibana:7.8.0由于云服务器配置太低,使用docker启动不起来。(使用本地的虚拟机)二、配置原创 2020-11-02 18:17:22 · 2343 阅读 · 0 评论 -
SpringDataElasticsearch的使用以及使用Logstash同步MySQL数据到ES
文章目录一、介绍1.pom依赖2.yml配置文件主启动类二、代码1.Repository2.Service3.ServiceImpl4.Controller三、使用Logstash同步MySQL数据到ES1.简单介绍一下2.启动测试3.创建mysql.confBug一、介绍我只用的ES版本是7.81.pom依赖# SpringBoot版本 <parent> <groupId>org.springframework.boot</groupId>原创 2020-10-30 16:00:57 · 387 阅读 · 0 评论