自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 资源 (9)
  • 问答 (2)
  • 收藏
  • 关注

原创 记一次神奇的SQL查询经历,group by、order by慢查询优化

mysql的默认存储引擎是innodb,我们创建了innodb后,可以进入到mysql的数据目录下,可以发现,每个聚簇索引的表,都包含两个文件,其中一个表的定义文件,一个是.ibd的文件,这个文件实际上存储的数据就是一个表的索引和数据了,而聚簇索引的意思就是索引和数据放在同一个文件的,就叫做聚簇索引,比如innodb存储引擎的主键索引,就是聚簇索引,也是一棵B+tree结构。myisam存储引擎创建的表,我们去到数据目录下,会发现有三个文件,其中一个是表的定义文件,一个是数据文件,还有一个是索引文件。

2022-10-28 20:11:09 2069 1

原创 手把手教你区块链java开发智能合约nft-第五篇(铸造第一个NFT)

部署完成后,将得到一个NFT721的智能合约地址contractAddress,这个智能合约地址值需要保存好,待会铸造NFT时需要用到它。tokenURItokenURI,具体上链的数据,上链后可以通过tokenId查看的数据,一个tokenId需要指定一个tokenURI。铸造NFT也是比较简单的,直接调用NFT721的方法mint就可以了,主要难点是在对数据的签名上。今天写的这篇是在前面文章基础上写的,初学区块链的朋友建议先看我前面写的文章。执行完以上代码,没有报错的话,等一会就会铸造成功了。...

2022-07-25 15:32:11 5210 4

原创 手把手教你区块链java开发智能合约nft(第四篇)-如何动态获取gasPrice和gasLimit?

初学区块链,那真叫一个痛苦并无助。如果没有人带你的话今天写的这篇是在前面文章基础上写的,初学区块链的朋友建议先看我前面写的文章手把手教你区块链java开发智能合约nft-第一篇手把手教你区块链java开发智能合约nft-第二篇(部署第一个NFT智能合约)关于这几个概念,可以点击参考官方的说明对于这个问题,刚入门的我就非常吐槽了,在区块链上任何操作EVM的,都会耗用一定的gas,给少了矿工就罢工了,直接报错刚入门的我真不了解这些,利用web3j 依赖进行java开发,在部署智能合约时,采用默认的方式获取g

2022-07-08 21:09:51 4001 9

原创 手把手教你区块链java开发智能合约nft token-第三篇(部署token)

在区块链系统中,也称为通证。与一般token不同,区块链token具有权益性、加密性和可流通性。使得它成为区块链系统的“燃料”,资产流转、权益分享和资产升值等经济行为和机制变得顺其自然。......

2022-06-26 21:55:18 1614 5

原创 手把手教你区块链java开发智能合约nft-第二篇(部署第一个NFT智能合约)

刚搞区块链开发真的是太累了,自己摸石头过河,动不动就报错,网上搜索错误,一律看不出什么问题,或者报错的信息太少,问同事同事不鸟,问领导,领导也烦,无奈,对于英文不好的我,只能被迫去看英文文档了,企图找出java开发的方法......

2022-06-23 23:08:50 3709 2

原创 手把手教你区块链java开发智能合约nft-第一篇

刚接触区块链开发,使用java开发,真的是太难了,自己一步步摸索,从新手小白一路碰壁,动不动就报错,去网上搜索对应错误,还真什么都搜索不到,摸索了三四个月,今天终于有了一些进展,今天开始分享出来,希望能帮助到需要的朋友我作为一个java后端的程序员,不会写智能合约,但是可以找对应会的人写,或者自己网上找资料自己写。这里只介绍怎么将智能合约转为java代码...

2022-06-23 18:05:08 7940 3

原创 区块链NFT开发常见问题:Only read operations are supported by this transaction manager 解决

区块链NFT开发常见问题:Only read operations are supported by this transaction manager 解决

2022-06-17 15:06:01 662

原创 Nginx如何动态转发到动态IP的内网服务?

Nginx如何应对动态IP?如何转发到动态IP的机器上?如何配置?

2022-06-11 11:48:01 4172

原创 web3j 引用报错:okhttp3.RequestBody okhttp3.RequestBody.create(java.lang.String, okhttp3.MediaType)解决

java.lang.NoSuchMethodError: 'okhttp3.RequestBody okhttp3.RequestBody.create(java.lang.String, okhttp3.MediaType)' at org.web3j.protocol.http.HttpService.performIO(HttpService.java:155) at org.web3j.protocol.Service.send(Service.java:48) at org.web3j.p

2022-06-07 17:32:12 4319

原创 手把手教你搭建redis集群环境

手把手教你搭建redis集群环境搭建redis集群环境redis集群使用场景:如何解决redis内存瓶颈?怎么将redis分片存储?集群搭建1.创建节点目录2.修改配置3.创建集群关联验证集群搭建redis集群环境我研究技术,一般喜欢先看看这个技术有哪些应用场景,然后在学会怎么去搭建,怎么去使用看阅读本文之前,建议先阅读下:手把手教你搭建Redis主从,从编译到安装,主机,docker搭建主从复制手把手教你redis sentinel哨兵高可用故障转移搭建redis集群使用场景:1.单机模式内

2022-03-21 20:31:59 3240

原创 手把手教你redis sentinel哨兵高可用故障转移搭建

手把手教你redis sentinel哨兵高可用故障转移搭建redis哨兵简介修改哨兵配置启动哨兵检验哨兵是否启动成功在阅读本文之前,建议先阅读我的上一篇手把手教你搭建Redis主从,从编译到安装,主机,docker搭建主从复制redis哨兵简介本文是基于上一篇手把手教你搭建Redis主从,从编译到安装,主机,docker搭建主从复制 搭建的,主从复制可以帮助我们将数据备份和进行读写分离,减轻单台机子的压力,但是如果master挂掉了,主从复制并不能进行故障转移,于是有了哨兵sentinel哨兵的

2022-03-10 11:21:13 404

原创 手把手教你搭建Redis主从,从编译到安装,主机,docker搭建主从复制

手把手教你搭建Redis主从,从编译到安装,docker搭建下载Redis源码,make编译源码主机上配置主从docker 配置主从拉去redis镜像启动三台redis,分别是redis6379,redis6380,redis6381查看主docker的IP地址配置主从复制验证主从复制本文搭建是基于Linux平台下载Redis源码,make编译源码到Redis官网下载,本文是基于6.2.6版本如果下载的是源码包,自行上传到Linux对应目录下(自定义,没有强制要求必须放在哪里)命令下载编译$

2022-03-09 16:12:09 1389

原创 spring中如何通过自定义注解对接口进行加缓存?架构可以让你不改已存在的代码

spring中如何通过自定义注解加对接口进行加缓存?近期为了快速升职加薪,不断的学习架构之路以前在使用Redis缓存时,经常是在代码中通过调用RedisTemplate进行操作缓存的,哪里需要加缓存,就通过这种方式来使用,当时也没多想,觉得用得还挺顺手的,甚至其他同事在使用Redis时,基本上的使用方式和我是一样的,没啥区别但是最近学习了架构之后,总感觉之前的做法不太好,每次加缓存,都要得去修改代码,增加缓存的代码,而修改代码很容易引起很多风险为什么有风险?因为至少每次都需要有以下两个步骤1.先去

2022-03-05 23:49:37 964

原创 记录guava 缓存的使用案例

记录guava 缓存的使用案例看了源码实现,发现有4-5千行代码,就没有去好好看了,直接上案例import com.google.common.cache.*;import com.study.cache.java.pojo.User;import java.util.concurrent.ExecutionException;import java.util.concurrent.TimeUnit;// https://github.com/google/guavapublic clas

2022-03-05 22:54:33 957

原创 如何更好理解Lock锁?手把手教你手写Lock实现

如何更好理解Lock锁?手把手教你手写Lock实现Lock 锁为什么要学习底层原理?手写Lock实现获取锁释放锁测试HarryLock锁总结Lock 锁了解多线程并发的都比较熟悉Lock,Lock实际上就是一个接口,用户可以实现Lock接口,完成对锁的控制,也可以并发包里面的Lock锁实现类ReentrantLock 使用锁,但是大部分人都是只是停留在会使用的基础上,很少去了解Lock锁底层是怎么实现的,当需要换工作的时候,面试又是经常被问到,然而却经常说不出来,去年底我也开始面试,面试了好几家公司都被

2022-02-22 19:13:15 345

原创 循序渐进学习微服务 一,nacos配置中心和注册中心

学习目标这篇文章能快速帮您搭建nacos服务,对于读者来说,你就轻轻点击对应的链接下载,轻轻的复制粘贴对应的启动指令,就能快速跑起nacos服务了版本选择您可以在Nacos的release notes及博客中找到每个版本支持的功能的介绍,当前推荐的稳定版本为2.0.3。预备环境准备Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:64 bit OS,支持 Linux/Unix/Mac/Windows,

2021-08-31 23:03:56 261 2

原创 循序渐进学习线程池 一 了解基本概念和参数意义,让你合理地配置线程池

文章目录什么是线程池?线程池要做些什么?线程池的主要处理流程ThreadPoolExecutor执行execute()方法的示意线程池的创建各个参数含义corePoolSizemaximumPoolSizekeepAliveTimeTimeUnitworkQueuethreadFactoryRejectedExecutionHandler(饱和策略)关闭线程池合理地配置线程池什么是线程池?降低资源的消耗提高响应速度,任务:T1创建线程时间,T2任务执行时间,T3线程销毁时间,线程池没有或者减少

2021-08-20 11:59:55 85

原创 项目报错无法正常启动报错 contains illegal character, only digit, letter, ‘-‘, ‘_‘ or ‘.‘ is legal. 解决方案

作为程序猿,开发过程中,最烦人的就是排错,最让人兴奋的也是排错,因为只有在不断排错的过程中,才能体验到喜悦,才能体验到成就感,当一个一个问题在解决时,我都想请你喝酒庆祝!!!项目无法正常启动项目在启动过程中,经常会发现某些bean不无法加载等异常问题,甚至是有时候你感觉好像一点问题都没有,但是就死活起不来,报如下类似于:Injection of @DubboReference dependencies is failed; nested exception is java.lang.IllegalSta

2021-08-12 14:37:37 6536

原创 循序渐进学习spring security 第十四篇 自定义验证码认证逻辑,自定义动态权限下URL白名单配置

文章目录学习目标回顾自定义认证逻辑,增加验证码校验创建项目:security-verify创建类:UsernamePasswordProvider编写获取验证码接口配置URL白名单测试如何添加URL白名单DefaultFilterInvocationSecurityMetadataSource 源码剖析将过滤器 MenuFilterInvocationSecurityMetadataSource 改为继承DefaultFilterInvocationSecurityMetadataSource配置URL白

2021-08-08 15:45:54 1461 1

原创 循序渐进学spring security 第十三篇 四种权限控制是什么?项目中如何使用案例

文章目录回顾四种模式表达式控制 URL 路径权限表达式控制方法权限使用过滤注解动态权限回顾前面我们通过《循序渐进学spring security 第七篇,如何基于用户表和权限表配置权限?越学越简单了》介绍了如何通过动态给用户授权和控制URL权限,后面又通过《循序渐进学spring security 第十一篇 如何动态权限控制URL?如何动态给用户添加权限?》介绍了如何动态分配URL权限和用户权限,今天,我们继续介绍权限的四种模式表达式控制 URL 路径权限表达式控制方法权限使用过滤注解动态权限

2021-08-07 12:59:57 296

原创 循序渐进学spring security 第十二篇 修改登录密码后如何让修改前的token失效?

文章目录回顾如何实现用户修改了密码,之前的token就失效?用户修改密码后,需要重新登录验证密码是否被修改测试功能回顾前面我们介绍了《循序渐进学spring security 第十篇 如何用token登录?JWT闪亮登场》JWT 生成token的方式生成了登录凭证token,这样客户端只需要在请求接口上添加请求头token,服务端在过滤器中拦截并取出来token值,进行静默登录,但是有一个问题,不知道大家是否有留意到,如果用户修改了密码,并且重新登录过系统,而此时,如果还是用以前的token,还能继续访

2021-08-02 13:47:58 2756

原创 循序渐进学spring security 第十一篇 如何动态权限控制URL?如何动态给用户添加权限?

文章目录回顾为什么要动态权限?如何更好的管理权限?数据库设计用户表定义角色表定义菜单表角色人员表角色菜单表如何实现动态权限管理?动态获取url权限配置权限判断搭建项目创建项目:security-mybatis-jwt-perm添加maven依赖:修改pom项目名和artifactId 都统一为:security-mybatis-jwt-perm新建数据库操作相关类和mapper创建实体类添加mybatis 的mapper.xml添加mapper接口动态权限配置动态获取url权限配置动态权限判断配置Secur

2021-08-01 22:29:25 4089 6

原创 循序渐进学spring security 第十篇 如何用token登录?JWT闪亮登场

文章目录JWT简介JWT认证JWT的结构JWT登录流程如何引入JWTJwtHelper 工具类介绍如何创建token?如何解析token?创建项目创建项目:security-mybatis-jwt引入JWT maven依赖将登录成功,登录失败,登出等配置的handler抽取出来单独放在一个handler包创建JWT工具类登录成功后生产token返回给前端如何校验token的有效性?验证失败的处理启动测试JWT简介JWT是 Json Web Token 的缩写。它是基于 RFC 7519 标准定义的一种可

2021-07-31 22:50:04 2314 2

原创 循序渐进学spring security 第九篇,支持多种加密方案源码解读和示例代码

回顾上一篇文章《循序渐进学spring security 第八篇,如何配置密码加密?是否支持多种加密方案?》我们介绍了配置密码的加密,顺带介绍了spring security 是支持多种加密方案的,那么,spring security是怎么支持多种加密方案的,我们通过阅读源码发现是通过DelegatingPasswordEncoder 这个实现了PasswordEncoder 的类完成的,今晚我们继续来探索DelegatingPasswordEncoder 是怎么支持多种加密方案的在阅读本文之前,建议先

2021-07-30 11:12:18 355

原创 循序渐进学spring security 第八篇,如何配置密码加密?是否支持多种加密方案?

文章目录回顾密码明文会带来什么问题?如何加密?PasswordEncoder 加密接口如何配置?加密的密码在登录的时候是怎么校验的?默认的加密是什么?DaoAuthenticationProvider 是怎么初始化的?怎么设置用户配置的PasswordEncoder?回顾前面我们介绍了spring security的登录验证,涉及到密码的都是明文存储,明文匹配的,这在企业项目开发中是不允许的,要是不小心被客户知道了,会投诉企业,指不定会破产,好了,在阅读本文之前,建议先看我之前的文章,方便更好的理解!

2021-07-29 22:55:10 945

原创 循序渐进学spring security 第七篇,如何基于用户表和权限表配置权限?越学越简单了

回顾前面我们介绍了如何通过配置的方式自定义页面,如何配置用户,如何从数据库读取用户并配置到spring security上进行登录登录验证,如果你不熟悉,请回去看我的前几篇文章,这样有助于您对本文的理解面试不要在说不熟悉spring security了,一个demo让你使劲忽悠面试官循序渐进学习spring security 第二篇,如何修改默认用户?循序渐进学习spring security 第三篇,如何自定义登录页面?登录回调?循序渐进雪spring security 第四篇,登录流程是怎样

2021-07-28 23:51:39 1590

原创 多层for嵌套循环遍历,如何跳出当前循环继续下一个循环?

很多做了多年java开发的同学也不一定搞懂,如何在多个for嵌套循环中,判断某个条件满足时,直接结束当前循环,跳出到外层或者某一层继续下个循环,今天我带领大家来了解下多层嵌套循环,如何结束当前循环继续到指定层级继续循环题目:假设有3个列表ABC需要嵌套循环遍历,ABC的关系是,A包含B,B包含C,也就是说,A是父,B是A的子集,C是B的子集。现在先遍历A,然后从A中取出B列表,继续遍历B,然后又从B中取出C,继续遍历C。现在想在B遍历C时,有个业务处理,满足条件的,就跳出循环到下一个A继续遍历,如何实现

2021-07-27 13:46:57 7503

原创 循序渐进学spring security第六篇,手把手教你如何从数据库读取用户进行登录验证,mybatis集成

文章目录回顾如何从数据库中读取用户数据进行认证?创建项目创建工程 :security-mybatis创建实体类:User,实现接口UserDetails创建mapper创建UserDetailsServiceImpl类,实现接口UserDetailsService配置spring security 关联数据库别忘了配置数据源测试效果回顾前面通过《循序渐进学习spring security 第二篇,如何修改默认用户?》介绍了如何通过配置修改用户名和密码,循序渐进的从配置文件配置默认用户到从代码中通过内存

2021-07-26 23:07:31 910 6

原创 [循序渐进学习spring security 第五篇,如何处理重定向和服务器跳转?登录如何返回JSON串?

文章目录回顾前后端分离的数据交互神器--JSON登录成功 successHandler 功能介绍登录失败 failureHandler 功能介绍未认证处理方案注销登录回顾之前在《循序渐进学习spring security 第三篇,如何自定义登录页面?登录回调?》中介绍了如何通过spring security 自定义登录页面和登录成功失败的回调的配置,可以根据配置指定的URL跳转页面,要么重定向,要么服务端跳转,如果对于spring security 自定义登录页面不熟悉的可以回去看看我之前的文章。但是在

2021-07-25 22:48:27 2111 1

原创 循序渐进雪spring security 第四篇,登录流程是怎样的?登录用户信息保存在哪里?

文章目录回顾探索登录流程探索UsernamePasswordAuthenticationFilter 的attemptAuthentication 验证方法探索AuthenticationManager#authenticate(authRequest) 验证过程用户登录后的信息是如何保存的?想必很多人接触了spring security 后都想知道,登录流程是怎么样的?今天悬弧带大家扒了登录流程源码的外衣,透过光溜溜的源码分析spring security的登录流程回顾我们在《循序渐进学习spri

2021-07-25 17:03:48 1516 1

原创 循序渐进学习spring security 第三篇,如何自定义登录页面?登录回调?

文章目录回顾自定义表单登录页服务端定义定义的登录页面,用户名和密码参数名称,是固定的名称?怎么定义?能否自定义?自定义页面怎么关联到spring security?提交的登录接口是什么?能否修改?项目实战创建项目将自定义页面资源放到resource目录下的static目录下,如图在配置文件SecurityConfig中关联自定义页面和配置相关项测试自定义登录回调URL登录成功回调地址配置登录失败回调配置注销配置回顾上一篇《循序渐进学习spring security 第二篇,如何修改默认用户?》中我们介绍

2021-07-25 12:14:21 898 1

原创 循序渐进学习spring security 第二篇,如何修改默认用户?

目录回顾上一篇如何配置用户新建项目 测试 代码中配置用户回顾上一篇{#previous}在上一篇《[面试不要在说不熟悉spring security了,一个demo让你使劲忽悠面试官] (https://blog.csdn.net/huangxuanheng/article/details/119062001)》 中我们对spring security 有了一个初步的感受,接下来,我们来一起分析的用户配置上一篇项目启动时,会自动的打印默认用户的密码出来,这个密码是临时的密码,而用户也是默认的

2021-07-24 22:37:38 773 3

原创 面试不要在说不熟悉spring security了,一个demo让你使劲忽悠面试官

简单介绍自动spring boot 出现以来,spring security 逐渐被流行起来,主要是spring security 一直是被定义为一个重量级的框架,但是spring boot出现以后,就不一样了,spring security 就逐渐变得简单了很多做java已经有了多年,发现写了几年的项目,都还没有机会接触到spring security 相关的框架,直到2019年来到了一个公司,做企业数字化的公司,才开始对spring security 有一定的接触spring security 就

2021-07-24 19:10:39 2343 5

原创 oauth2单点登录难掌握?配置一下就搞定

单点登录是我们在分布式系统中很常见的一个需求。分布式系统由多个不同的子系统组成,而我们在使用系统的时候,只需要登录一次即可,这样其他系统都认为用户已经登录了,不用再次去登录。大家可以登录淘宝天猫、支付宝、阿里云等网址体验一下单点登录熟悉了oauth2单点登录功能,去面试时将是刘备遇到诸葛亮,如鱼得水今天亨哥想和大家说一说 Spring Boot+OAuth2 做单点登录,利用 @EnableOAuth2Sso 注解快速实现单点登录功能。源码下载地址话不多说,开搞步骤项目创建把授权服务器和资

2021-07-24 12:47:42 990

原创 java8新特性之stream groupingBy 使用案例,哥教你如何100行代码变为1行搞定

java8出来了好多年,好多特性一直收益至今,真的太强大了我今天要说的是stream groupingBy 使用案例,喜欢的朋友可以借鉴如果熟练使用了groupingBy 方式,每次写代码,至少可以将20行代码变为1行,也许有人说,这怎么可能?我告诉你,没有什么不可能的,今天我就告诉你如何将20行的代码,变为1行代码背景:项目中需要做一个从第三方同步角色的功能,角色上有分类,也就是角色组,获取角色的接口和获取角色组的接口是分开的,同步过来的角色和角色组写到数据库时,都会各自生产自身系统的id,当然也

2021-07-22 14:15:31 858 1

原创 Command line is too long. Shorten command line for SpringBootMainApplication or also for Application

问题如图:问题的解决方案有三种:第一:第二:修改项目下 .idea\workspace.xml找到标签<component name="PropertiesComponent">。在标签里加一行 :<property name="dynamic.classpath" value="true" />第一、第二种,虽然都可以让项目运行起来,但是用起来很不方便,当你要修改代码重新跑时,往往不是最新的代码在跑,调试起来很不...

2020-06-30 19:54:15 6271 3

原创 Parameter 'userName' not found. Available parameters are [0, 1, 2, param3, param1, param2]

spring+mybatis报错主要原来我这样写<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> insert into tb_userinfo (`name`,phone,`passw

2017-12-14 17:46:27 5586

原创 springmvc+mybatis配置过程及示例

springMVC+mybatis配置过程及其示例

2017-11-05 00:18:00 660

原创 数据统计之饼图实现

数据统计之饼图实现原理是重写onDraw方法,根据饼图的特点以及点的坐标关系,绘制而成

2017-04-24 10:21:20 4817

原创 RxAndroid和RxJava的简单使用

RxAndroid和RxJava的简单使用近段时间非常火的RxAndroid和RxJava,炒的我心里痒痒的,于是抽空了解了一下基本的使用配置:在module的build.grade文件中添加依赖    compile 'io.reactivex:rxjava:1.1.0'    compile 'io.reactivex:rxandroid:1.1.0'

2017-03-23 23:04:55 410

智能合约NFT721相关资源源代码

智能合约NFT721相关资源源代码

2022-07-25

oauth2简单demo

基于oauth2简单demo实现,包括authserver,client端的demo

2021-07-24

ZooInspector

zookeeper图形化界面管理工具,输入ip,端口号,就可以远程登录到zookeeper,页面更友好

2018-01-05

springmvc+mybatis配置实现demo

springMVC+mybatis简单demo配置及其实现,配置详细,demo简单,可读性强

2017-11-05

自定义数据统计之饼图实现

自定义简单的数据统计之饼图,逻辑简单,代码不复杂,方便使用和学习

2017-04-22

炫酷九宫格抽奖demo

该资源是一个九宫格的抽奖项目,一个简单的demo,分享给需要的朋友

2016-11-06

炫酷九宫格抽奖

2016-11-06

炫酷流畅九宫格抽奖

2016-11-05

逻辑运算符

为何这个代码输出结果是在同一行的呢?而书本却是两行。

2014-01-29

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除