自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱音乐的程序猿的博客

全栈开发,软件架构。语言java,go,rust,js。软件方向uniapp,web,tcp网络编程,桌面软件。后端,运维,云原生

  • 博客(76)
  • 收藏
  • 关注

原创 spring authorization server授权服务器教程,集成jdbc,使用版本0.2.2

文章目录前言一、创建授权服务器1.引入库2.创建相关数据表3.配置文件4.放入官方认证html页面5.生成jks文件6.配置KeyPair7.配置AuthorizationServerConfig授权服务器配置8.配置WebSecurityConfig基础security配置三 启动项目,这里我们测试授权码模式总结前言spring authorization server是spring团队最新的认证授权服务器,之前的oauth2后面会逐步弃用。不过目前项目还没有到可生产阶段。springsecuri

2022-02-25 10:48:19 9845 30

原创 sharding-jdbc5系列教程(一)springboot配置shardingjdbc+mybatis-plus+druid+dynamic-datasource

系列文章目录文章目录系列文章目录前言一、shardingjdbcApache ShardingSphere 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,又支持混合部署配合使用的产品组成。 它们均提供标准化的数据水平扩展、分布式事务和分布式治理等功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。Apache ShardingSphere 旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,

2022-01-28 16:37:42 5289 9

原创 netty自定义协议解析

文章目录前言一、ByteToMessageDecoder二、使用步骤1.引入库2.读入数据总结前言Netty是由JBOSS提供的一个java开源框架,现为 Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端的编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过

2021-02-19 16:09:16 1249 5

原创 springsecurity自定义短信验证码认证登录流程

文章目录前言验证码存储我们采用redis作为缓存(注意,这里为了测试方便改为手动设置验证码)经过上面接口,验证码已经存入到redis中,下面开始认证流程自定义SmsCodeAuthenticationToken短信验证码认证token有了sms认证token后,我们还要自定义登录过滤器SmsCodeAuthenticationFilter,专门用来处理短信登录路径依然是参照security默认登录的过滤器UsernamePasswordAuthenticationFilter来实现自己的代码有了这两个后,我

2020-10-12 10:56:03 2427

原创 docker搭建redis集群主从,哨兵模式(一主,二从,三哨兵)

首先拉取redis镜像docker pull redis拉取完成后运行redis容器,运行主节点docker run --name redis-6379 -p 6379:6379 -v /home/redis/master/data:/data -d redis redis-server --appendonly yes运行从节点docker run --name redis-6380 -p 6380:6379 -v /home/redis/redis6380/data:/data -d

2020-07-22 15:33:24 545

原创 自动生成代码freemarker实现,教你java手写自动代码生成器,自动生成controller,service,mapper,等相关文件

自己闲着没事就是这些了些自动代码生成器,根据实体类,利用反射自动生成controller,service,mapper,等相关文件。下面是具体代码如何使用可以参照我github上的项目https://github.com/kongGe55/mapper_test这个项目结合了这个工具类的具体使用,大家可以根据自己的项目业务自由定制修改,甚至可以修改后生成后台html模板文件package cn.haiwei.csovsserver;import cn.haiwei.csovsserver.mod

2020-07-08 17:52:16 2500 6

原创 手把手教你搭建页面美观个人博客,基于docker运行项目

手把手叫你搭建个人博客,基于docker运行项目先说明一下安装docker部署mysql部署halo博客容器拉取halo最新docker镜像先说明一下 搭建项目前,首先需要有自己的服务器,这里推荐云服务器,阿里云或者腾讯云什么的。只需要一台自己的云服务器即可。 这里我个人采用了halo开源框架博客,官网 halo.run,上面有详细文档这里我来说明一下我详细搭建过程安装docker 这里推荐一篇博文,写的很详细 [如何安装docker](https://blog.csdn.net/u0

2020-07-08 16:59:26 425

原创 手写springmvc框架ioc容器(简易版),实现实体类参数接收,并实现基于yaml配置文件

基于注解yaml配置手动实现简单的springmvc,实现bean注入功能,mvc实体类参数接收不完善的地方基本包整体原理如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入...

2019-04-15 16:05:41 749

原创 springboot使用注解方式aop,获取注解参数,处理request和response

springboot使用注解aop,获取注解参数,处理request和response这里实现一个简单的登陆判断注解加了LonginAction的方法必须登陆才能执行1首先检查是否导入相关springboot aop启动器依赖 <dependency> <groupId>org.springframework.boot</groupI...

2019-04-15 15:17:41 23598

原创 【从零开始的rust web开发之路 五】rust语言lazy_static加serde_yaml实现读取外部yaml配置

web开发离不开外部配置。之前一直用的java springboot开发web。rust有读取yaml的库,可以实现类似的效果lazy_static 是 Rust 语言中一个非常有用的第三方库,它的主要作用是允许开发者在程序中声明并初始化那些需要延迟求值(late initialization)的静态变量。在 Rust 中,通常情况下,静态变量(static)要求在编译时就能确定其值,并且一旦初始化后就不能更改。

2024-02-02 15:13:21 953

原创 【从零开始的rust web开发之路 四】rust语言tokio异步使用redis教程

使用rust写web,自然是离不开redis缓存的。rust也有现成redis连接库,并且支持阻塞和异步两种模式。下面教程我我以tokio异步操作redis方式为主,同步的操作可以参考异步,区别不大以上就是今天要讲的内容,本文介绍了rust语言tokio异步使用redis教程,后续会出一个扩展使用教程。

2024-02-02 14:41:22 1610

原创 【从零开始的rust web开发之路 三】orm框架sea-orm入门使用教程

前两篇文件主要降了axum相关使用,这篇文章来讲讲orm相关框架。目前rust orm相关框架不多,比较主流的是sqlx,本文介绍的框架实在此基础上封装的一层,sql-orm同样也支持rust异步。本文主要讲解sea-orm入门使用教程

2024-01-31 15:47:09 1949 1

原创 【rust语言】rust多态实现方式

学习rust当中遇到了这个问题,多态是面向对象程序设计中的一个重要概念,指同一个行为或操作在不同实例上具有不同的行为或结果。简单来说,多态就是指同一种类型的对象,在不同的上下文中有不同的行为。多态性使得程序可以更加灵活、可扩展和易于维护。在实现多态性时,通常会使用继承、接口、抽象类等技术,这篇文章说说rust当中的多态

2023-08-24 10:44:44 1088 3

原创 【从零开始的rust web开发之路 二】axum中间件和共享状态使用

上篇文件讲了路由和参数相应相关的。axum还有个关键的地方是中间件的使用,这篇文件就来说说。想要自定义中间件,这里介绍两种axum原生的方法一种是axum::middleware::from_fn举个例子Router,///自定义中间件方法// 对请求做一些处理//......//调用下一个中间价//......// 对响应做一些处理,返回响应response//这里使用中间件还有一种方法是axum::middleware::from_extractor举个例子。

2023-08-21 16:08:10 3155

原创 【从零开始的rust web开发之路 一】axum学习使用

目前rust 语言web开发相关的框架已经有很多,但还是和java,go语言比不了。这个系列想完整走一遍web开发,后续有时间就出orm,还有一些别的web用到的库教程。言归正传,开始学习axum框架Axum是一个专注于人体工程学和模块化的Web应用程序框架。

2023-08-18 17:49:18 4922

原创 rust关于项目结构包,Crate和mod和目录的组织

这里我个人理解包类似于java当中maven当中的模块,crate root 是一个源文件,Rust 编译器以它为起始点,并构成你的 crate 的根模块。就是说各个mod串联的起点,比如main.rs当中定义。或者lib.rs库create这里我个人理解就像是java当中的package,当然也有很大区别。通过这些能组织项目中的目录,各个package引用。

2023-08-09 10:10:18 1949 1

原创 我的创作纪念日

在日常业务开发中遇到了很多问题,起初只是为了记录解决的问题。后面也就尝试着写了几篇技术文章,也算是对自我的一种提升。我一般是项目不忙的时候会闲下来总结,最近遇到了哪些问题,技术上有哪些提升。到目前为止写了大概几十篇文章了,收获了几千粉丝,十几万阅读量。自己也算是帮助了不少人吧。对于未来来说,任何时候都只是开始,把握当下。

2023-04-17 11:21:00 98 1

原创 【uniapp蓝牙分包发送】uniapp蓝牙分包发送,最大20字节

uniapp使用蓝牙与设备通信时候,在向设备写入消息会出现写入失败。查了查官方文档,在调用uni.writeBLECharacteristicValue(OBJECT)方法时候是有限制的。采用分包发送,使用递归方法

2023-02-15 16:46:01 2270 5

原创 (k8s日志收集)kubernetes守护进程方式部署filebeat收集k8s集群容器日志elasticsearch+kibana+filebeat

(k8s日志收集)EFK方式收集日志k8s容器日志默认存储路径是/var/log/containers/一是可以通过直接linux系统部署方式,收集/var/log/containers/目录下k8s容器日志,每个节点都有这个目录二是docker容器运行filebeat,并挂载/var/log/containers数据卷,这样也能收集日志三是在k8s上使用守护进程的方式保证每个节点都运行一个filebeat实列,并且挂在数据卷/var/log/containers,类型是hostpath

2022-09-13 09:23:50 2625

原创 ElasticsearchClient分页查询,排序

ElasticsearchCient分页排序。如何创建新版客户端我就不说了,之前文章写的有https。

2022-07-22 11:14:01 1315 1

原创 【vertx系列教程】(一)vertx实现tcp通信,tcp服务端搭建,基于springboot项目

关于vertx介绍这里就不多说了,官网说的很详细,https://vertx.io/创建Verticle,用Verticle创建更易于管理,关于verticle介绍可以看这里https://vertx.io/docs/vertx-core/java/#_verticles配置vertx,并部署Verticle这里就创建完成了通过软件测试,这里推荐一个TCP测试工具https://www.usr.cn/Down/Software/USR-TCP232-Test-V1.3.exe打开软件,设置端口

2022-07-01 11:44:58 1844 1

原创 elasaticsearch新版java客户端ElasticsearchClient详细教程,支持响应式编程,Lambda表达式,兼容旧版High Level Rest Client

elasaticsearch新版java客户端详细教程,支持响应式编程,Lambda表达式。兼容旧版High Level Rest Client。网上相关教程少,我在这里出一个。有几种方式,这里介绍两种,如果不考虑之前旧版High Level Rest Client的客户端采用第一种就行阻塞和异步客户端API 客户端有两种形式:阻塞和异步。异步客户端上的所有方法都返回一个标准CompletableFuture.根据需要,两种风格可以同时使...

2022-06-11 10:39:13 3730 6

原创 【spring authorization server系列教程】(一)入门系列,spring authorization server简介。快速构建一个授权服务器(基于最新版本0.3.0)

【spring authorization server系列教程】(一)入门系列,快速构建一个授权服务器spring authorization server是spring团队最新的认证授权服务器,之前的oauth2后面会逐步弃用。不过到现在发文的时候,我看到官网已经把之前oauth2仓库废弃了。现在spring authorization server已经到生产就绪阶段了,不过目前项目还没有完全到生产可用阶段。...

2022-06-07 09:54:02 18283 7

原创 windows下安装minio服务器

windows下安装minio服务器https://min.io/download#/Windows控制台命令执行 设置环境变量然后编写启动脚本方便运行前面的是安装包路径,后面是minio数据路径,最后面参数是暴露的ip端口看到这个就算运行成功了访问你的ip+端口 输入用户名密码就登陆成功了

2022-06-01 09:23:53 761

原创 【云原生系列教程】centos7安装helm (Kubernetes软件包管理器)

文章目录前言一、Helm是什么?二、安装最新版,用二进制版本安装,二进制版本可以说是最简单的安装方式1.下载软件包2.解压运行3.测试总结前言一、Helm是什么?Helm 帮助您管理 Kubernetes 应用—— Helm Chart,即使是最复杂的 Kubernetes 应用程序,都可以帮助您定义,安装和升级。二、安装最新版,用二进制版本安装,二进制版本可以说是最简单的安装方式1.下载软件包下载链接https://github.com/helm/helm/releases我这里选择这个

2022-05-25 09:27:44 1253

原创 【k8s容器日志收集】EFK收集日志,kubernetes守护进程方式部署filebeat收集k8s集群容器日志elasticsearch+kibana+filebeat

文章目录前言部署filebeat登录kibana查看日志总结前言上篇文章讲了使用ECK部署Kubernetes使用ECK部署Elasticsearch8.0和Kibana集群(k8s)这篇文章见如何使用filebeat收集k8s容器pod日志部署filebeat首先先要明白k8s容器日志默认存储路径是/var/log/containers/部署方式有三种一是可以通过直接linux系统部署方式,收集/var/log/containers/目录下k8s容器日志,每个节点都有这个目录二是dock

2022-05-19 14:12:38 1359

原创 【k8s集群安装】centos安装Kubernetes集群最新版本,步骤超详细

【k8s集群安装】centos安装Kubernetes集群最新版本,步骤超详细。基于rocky linux系统或者centos系统,docker作为容器引擎首先是准备工作,这里我准备了两台centos系统主机Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及一些不提供包管理器的发行版提供通用的指令每台机器 2 GB 或更多的 RAM (如果少于这个数字将会影响你应用的运行内存)2 CPU 核或更多集群中的所有机器的网络彼此均能相互连接(公网和内网都可以)

2022-04-22 10:58:17 940 7

原创 【mybatis plus源码解析】(三)自定义SQL注入器,教你如何自定义扩展BaseMapper接口方法,实现更多查询

自定义SQL注入器,教你如何自定义扩展BaseMapper接口方法,实现更多查询。mybatis plus源码解析。详解SQL注入器底层原理,mybatis plus是如何实现自动注入CRUD操作。通过源码看看相关类的详细解读。上篇文章介绍了【mybatis plus源码解析】mybatis plus执行原理,这回接着上篇文章,前面讲了sql注入器的原理,现在我们尝试自定义扩展一些方法。

2022-03-30 17:20:02 2535 1

原创 【mybatis plus源码解析】(二)详解SQL注入器底层原理,mybatis plus是如何实现自动注入CRUD操作

mybatis plus源码解析。详解SQL注入器底层原理,mybatis plus是如何实现自动注入CRUD操作。通过源码看看相关类的详细解读。上篇文章介绍了【mybatis plus源码解析】mybatis plus执行原理,这回接着上篇文章,建议看完上篇文章再来看这篇

2022-03-30 11:15:48 3241 1

原创 【mybatis plus源码解析】(一)mybatis plus执行原理,mybatis plus是如何实现自动注入CRUD操作

【mybatis plus源码解析】(一)mybatis plus执行原理(二)详解SQL注入器底层原理,mybatis plus是如何实现自动注入CRUD操作mybatis plus源码解析。详解SQL注入器底层原理,mybatis plus是如何实现自动注入CRUD操作。通过源码看看相关类的详细解读。系列文章

2022-03-29 17:06:28 9654

原创 【mybatis源码解析】(三)MapperRegistry类解析

前面两篇文章介绍了大体流程,这篇着重介绍跟MapperRegistry相关的类,MapperRegistry是什么?MapperRegistry翻译过来就是映射器注册表看看他的属性config是存储了mybatis相关配置的类knownMappers是一个以mpper接口类对象为key,MapperProxyFactory为值的map集合

2022-03-28 16:21:19 1140

原创 【java之juc并发包系列教程】线程池源码解析,一文看懂ThreadPoolExecutor线程池提交线程执行流程

文章目录前言一、ThreadPoolExecutor二、threadPoolExecutor.submit(Runnable task)前言一、ThreadPoolExecutor创建线程池有几种方式,可以通过工厂类创建,也可以直接创建对象。本质都是创建出了ThreadPoolExecutor对象,简单弄个例子看看创建和执行都做了什么new ThreadPoolExecutor构造函数可以看到有四个构造函数,具体参数意义这里不做解析发现调用了Executors.defaultThrea

2022-03-25 09:50:05 397

原创 【java之juc并发包系列教程】一文看懂ThreadLocal底层实现

ThreadLocal类提供线程局部变量。这些变量不同于它们的正常对应变量,因为每个访问一个(通过它的 get 或 set 方法)的线程都有它自己的、独立初始化的变量副本。 ThreadLocal 实例通常是希望将状态与线程相关联的类中的私有静态字段(例如,用户 ID 或事务 ID)。例如,下面的类生成每个线程本地的唯一标识符。线程的 id 在第一次调用 ThreadId.get() 时被分配,并且在后续调用中保持不变。

2022-03-24 13:31:08 402

原创 【mybatis源码解析】(二)详解mybatis中java动态代理模式的运用

系列文章目录第一章 【mybatis源码解析】(一)mybatis执行流程以及实现原理第二章 详解mybatis中java动态代理模式的运用文章目录系列文章目录前言一、java动态代理二、使用步骤1.引入库2.读入数据总结前言上篇文章讲解了mybatis一次查询执行的总体流程,这篇文章主要说说mybatis当中的动态代理,为什么mybatis的mapper接口没有实现类也能运行一、java动态代理示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

2022-03-24 10:34:39 440

原创 【mybatis源码解析】(一)mybatis执行流程以及实现原理

【mybatis源码解析】(一)mybatis执行流程以及实现原理。通过样例程序打断点一步一步看mybatis到底是如何执行的

2022-03-23 16:12:54 1324

原创 【java动态代理】动态代理作用与示例

文章目录前言一、代理模式1. 代理模式是什么2.举个例子3.执行测试类可以看到如下结果二、动态代理1.实现方式,基于上面静态代理,只需要新建代理类即可前言设计模式中有一种叫做代理模式。了解动态代理前先来看看代理模式是什么一、代理模式1. 代理模式是什么简单说就是不直接访问目标对象,提供一个代理用于控制对象访问2.举个例子定义接口Peoplepublic interface Person { void play();}实现类 男人public class Man implem

2022-03-23 13:52:50 522

原创 docker方式安装jenkins,方便快捷

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、运行一行命令即可二、访问端口ip:80802.获取初始密码一、运行一行命令即可docker run \ -u root \ --rm \ -d \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkinsc.

2022-03-16 09:04:28 455

原创 spring authorization server授权服务器教程,资源服务器搭建接入认证服务器

spring authorization server是spring团队最新的认证授权服务器,之前的oauth2后面会逐步弃用。不过目前项目还没有到可生产阶段。spring authorization server官方demo https://github.com/spring-projects/spring-authorization-server上篇文章介绍了认证服务器搭建教程 本篇文章介绍资源服务器端

2022-02-26 11:22:43 15415 2

原创 Kubernetes使用ECK部署Elasticsearch8.0和Kibana集群(k8s)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、安装ECK二、部署Elasticsearch8.0集群三.部署kibana集群三.访问测试部署完毕,使用ECK部署确实方便前言k8s使用ECK部署Elasticsearch和Kibana集群一、安装ECKkubectl create -f https://download.elastic.co/downloads/eck/2.0.0/crds.yamlkubectl apply -f https://downlo

2022-02-25 16:48:25 3649 5

原创 java云原生系列课程,quarkus入门体验

一、quarkus是什么?二、使用步骤1.安装graalvm1.将PATH环境变量增加GraalVMbin目录2.JAVA_HOME设置为 GraalVM 安装目录 (可选)2.使用idea创建quarkus项目3.编译镜像总结前言一、quarkus是什么?为 OpenJDK HotSpot 和 GraalVM 量身定制的 Kubernetes 原生 Java 堆栈,由最好的 Java 库和标准制作而成。有几大特性,这是官网介绍下面开始入门教程二、使用步骤1.安装graalvm

2022-02-22 09:00:04 2174

空空如也

空空如也

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

TA关注的人

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