自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

布吉_岛

布吉_岛的博客

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

原创 什么是服务器定位模式,如何使用?

*服务定位模式(Service Locator Pattern)**是一种软件开发中的设计模式,通过应用强大的抽象层,可对涉及尝试获取一个服务的过程进行封装。该模式使用一个称为"Service Locator"的中心注册表来处理请求并返回处理特定任务所需的必要信息。其包含各服务的引用,并且封装了定位服务的逻辑。在类中使用 Service Locator 来获取所需服务的实例。Service Locator 模式并不描述如何实例化服务,其描述了一种注册和定位服务的方式。

2022-04-18 14:26:28 1379

原创 Linux 下配置命令工具的解析

本文个人博客地址:https://www.leafage.top/posts/detail/2212501AB不修改环境变量文件,使得安装服务可以全局使用以 maven 为例来进行说明,很多 linux 服务器上都会安装各种基础服务和软件,用来执行一些操作,例如 java 代码的编译、打包需要用 maven 工具,其有一个命令 mvn 来执行各种操作。安装各种服务有很多方法,但是可能会因为各种原因需要的版本不是系统默认的仓库中提供的,例如 ubuntu 系统下默认 maven 版本号为 3.6.2,这

2022-01-25 15:42:40 524

原创 2021这一年

本文个人博客地址:https://www.leafage.top/posts/detail/21C31ZJN32021年,今天是最后一天了,各大网站都推送了年度报告,这一年的点点滴滴,历历在目。总体来说依旧是平平淡淡的一年,不过是西安经历了两次小的疫情,也都没起什么大的波澜,最近过年前却来一这一次超乎意料的严重疫情,只希望能尽快结束,恢复正常生活。今年正式上线了博客网站,虽然去年就已经发布过,但是无论网站还是内容都是浅尝辄止而已,今年用了一些时间去认真的做了一回,从前端的框架、组件等等到后端服务的接口

2021-12-31 15:35:08 353

原创 JVM - 类的生命周期

本文个人博客地址:https://www.leafage.top/posts/detail/21A133QUD生命周期:一个类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经历加载、验证、准备、解析、初始化、使用和卸载七个阶段,其中验证、准备、解析统称为连接。一、加载:通过类的全限定名,将类的 .class 文件中的二进制数据读到内存中;将其所代表的静态存储结构转化为方法区的运行时数据结构;在内存中生成代表该类的java.lang.Class对象,作为方法区该类的访问入口;

2021-10-15 09:36:10 154

原创 JVM - 垃圾回收算法

本文个人博客地址:https://www.leafage.top/posts/detail/21A138W45JVM 垃圾判断算法:引用计数算法(Reference Counting):给对象添加一个引用计数器,当有一个地方引用它,计数器加1,当一个引用失效,计数器减1,任何时候计数器值为0的对象就是不可能再被使用的。但是引用计数算法无法解决对象循环引用的问题(对象A应用对象B,对象B引用对象A,当A对象和B对象外部都不再存在引用时,它们之间仍然存在一个引用,这时引用计数算法就无法对其进行回收)。跟

2021-10-15 09:32:52 69

原创 JVM运行时数据区

本文个人博客地址:JVM运行时数据区 (leafage.top)JVM 的运行时数据区分为:程序计数器;虚拟机栈;本地方法栈;堆;方法区;其中堆、方法区是线程共享的,程序计数器、虚拟机栈、本地方法栈是线程隔离的,结构图示如下:1. 程序计数器:Java虚拟机的多线程是通过线程轮流切换、分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(对于多核处理器来说是一个内核)都只会执行一条线程中的指令。为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计

2021-08-18 10:38:54 154

原创 Activiti7事件监听

本文个人博客地址:Activiti7事件监听 (leafage.top)好久没有记录笔记了,最近做了一些关于工作流的事情,记录一下使用activiti 7的一些经验。需求:在流程发起和流程操作的过程中,给相关人员发送流程审批的通知提醒;不要在配置流程时手动添加,不能侵入到流程操作的过程,影响流程执行;这个怎么入手呢?没搞过activiti,activiti7 的官方文档写的跟屎一样烂,感觉好难呀????…文档参考性不高,那就试试看官方的示例,找到 activiti 的 repositor

2021-08-13 10:03:32 4270 1

原创 Mongo 服务重启异常问题记录

本文个人博客地址:https://www.leafage.top/posts/detail/21628W63S现在公司的服务器经常性断电,所以要经常性重启所有的服务,然而这些redis、mysql、mongo等服务中,mongo经常性出现重启失败的情况,根据之前的经验和网络上帖子的信息,这里记录一下总结;首先说明一下,这里安装的服务都是通过yum 或者 apt 安装的,这是我一直推荐和使用的操作,因为这样安装整洁、该放什么类型的文件到哪个目录下都是一样的(如:/var/log/xxx/xxx.log)

2021-06-28 15:16:57 1073

原创 NoClassDefFoundError:GenericObjectPoolConfig 问题

本文个人博客地址:https://www.leafage.top/posts/detail/21622MARQ记录一个redis的异常,今天更新测试环境的服务,该服务中使用了 spring-boot-starter-data-redis 的依赖,在发布测试的时候报错了,很尴尬。为啥呢,我本地运行的好好的呀。。。(是不是你的日常?????)。这个错的具体信息如下: 6 2021-06-22 09:23:17,291 [application-name] [main] WARN o.s.b.w.

2021-06-22 10:53:18 2979

原创 Spring Security 密码验证动态加盐的验证处理

本文个人博客地址:https://www.leafage.top/posts/detail/21697I2R最近几天在改造项目,需要将gateway整合security在一起进行认证和鉴权,之前gateway和auth是两个服务,auth是shiro写的一个,一个filter和一个配置,内容很简单,生成token,验证token,没有其他的安全检查,然后让对项目进行重构。先是要整合gateway和shiro,然而因为gateway是webflux,而shiro-spring是webmvc,所以没搞成功,

2021-06-09 17:17:20 920 2

原创 vue3+typescript上传文件到七牛云

本文个人博客地址:https://www.leafage.top/posts/detail/21414BX0Uleafage-ms项目写了很久了,但是一直没有完成上传文件的功能,之前看了几次七牛云的文档,折腾了几次,没有成功,今天下了决心必须解决这个问题就又开始了各种找资料,看文档,看示例,终于搞定了。项目中使用的是vite.js构建的,而且用的是typescript,网上的示例几乎没有,下面来一步步记录如何实现,七牛云的示例代码直接访问是无法访问的,这里就不挂地址了,直接看过程。首先安装qini

2021-04-15 08:54:46 883

原创 如何在 vue.js 实现 tree 组件?

在开发项目过程中,每个管理系统都需要权限、角色管理,这两个模块大都会使用 tree 型结构来展示数据,这样更加清晰明了,其实很多组件库都会包含自己创建的 tree 组件来供使用,但是这些组件库使用起来,会有很多需要根据需要去修改的地方。于是开始自己动手写一个定制化的 tree 组件。

2021-03-29 10:17:25 690

原创 如何使用 markdown-it 进行markdown解析并高亮代码块?

以下是可用的配置,md.js 文件添加了部分语言的支持,更多语言请查看highlight.js的文档,进行引入即可。markdown-it 和 highlight.js。

2021-03-18 17:52:38 2577

原创 如何配置 remark 进行 markdown 解析并高亮代码块?

上一篇介绍了如何在 vue.js 项目中使用 marked.js 来解析 markdown 文档,并进行代码块的高亮显示。这次在介绍另外一种方式解析 markdown 文档并高亮代码块。

2021-03-09 14:00:37 1392

原创 如何在 nuxt.js 中使用 axios.js 在组件和页面请求数据?

创建了前端工程,接下来开始写代码。因为初始化项目,只是最小的一些基本依赖,再开发中,需要一些第三方的库来支持,比如样式/组件库。

2021-03-04 11:33:54 948 1

原创 如何做vue.js项目markdown代码块高亮?

这一篇开始,来记录 Leafage 的诞生记录。首先需要知道一些主要的目标是什么:个人分享网站;容易被检索到;开发容易,部署简单;尽可能好看些,有自己的风格;动态网站,而非静态页面;基于以上目标,然后根据自己对前端的技术了解和掌握(工作主要是后台开发,会一些angular和vue),来开始进行技术选型:1. 前端开发技术,可选的有:nuxtjs (vue技术栈):上手简单,模块分离;nextjs (react技术栈):html、css、ts 代码写一起,不习惯;nest (ang

2021-03-02 16:59:44 687

原创 如何实现 mysql 字符串分割,转换为列

mysql 字符串分割,转换为列在工作中,偶尔会遇到这样的情况,某系统数据库中,存储关联数据不是通过关联表,而是通过存储关联数据的某个唯一标识符号,且一对多的时候,使用逗号或者其他符号分隔,例如"1,2,36"这样的格式,但是查询的时候需要此字段作为条件进行过滤,那就需要将这个字段的值转换为多个记录行的形式,那怎么来做呢?首先,要实现这样的功能,需要借助mysql默认提供的一张表来辅助完成,这个表的名字是:help_topic,另外需要借助一些mysql提供的函数:length(str),substri

2020-12-02 16:06:28 3609

原创 一步步带你实现Redis分布式锁

redis——分布式锁使用场景:问题一:高并发场景下会出现库存扣减异常;问题二:多实例部署,synchronized锁失效的问题;问题三:当方法执行过程中代码执行出现异常,锁无法删除的问题:问题四:如果方法执行过程中,服务整个挂掉了,那么加的锁会一直存在的问题;设置失效方法有两种:问题五:当方法还没执行完,锁失效了的问题;问题六:失效时间的长短怎么确定,不合适的失效时间如何解决;使用场景:抢购活动,限量供应;首先第一步设计:将库存信息放入redis进行缓存;public class Distribu

2020-05-22 07:46:46 592

原创 Dockerfile如何编写(指令详解)

DockerfileDockerfile 描述了组装镜像的步骤,其中每条指令都是单独执行的。除了FROM指令,其他每一条指令都会在上一条指令所生成镜像的基础上执行,执行完后会生成一个新的镜像层,新的镜像层覆盖在原来的镜像之上从而形成了新的镜像。Dockerfile所生成的最终镜像就是在基础镜像上面叠加一层层的镜像层组件的。Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和...

2019-12-10 18:12:13 12544 2

原创 Mybatis批量操作sql写法

mysql批量操作SQLmysql批量新增,参数为list新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入my...

2019-11-25 16:42:41 352

原创 spring security 5.x 使用及分析(三:OAuth2 分析)

spring security 5.x 使用及分析(三:自定义配置—原理解析)1.1 、分析原理1.1 、分析原理代码中配置密码加密方式为BCryptPassworncoder,关于这个BCryptPasswordEncoder加密方式的介绍,请自行查询;代码中使用构造注入了UserDetailsService的接口,实现指向了UserDetailsServiceImpl,这个是UserDet...

2019-08-24 23:19:04 2475

原创 spring security 学习和踩坑总结(表单默认配置)

二、自定义配置在上一篇中,介绍了Spring Security的一些基础的配置,及源码的介绍。本篇将介绍如何进行自定义的一些配置来实现权限的控制。1.1、登录页配置及使用我们继续在之前的代码里进行操作,首先,我们修改loginPage页面,修改为我们自定义的页面,页面代码示例如下:<!DOCTYPE html><html lang="en"><h...

2019-07-24 14:19:44 2261

原创 prometheus和grafana 服务监控搭建

prometheus服务监控注:文档仅记录在linux下进行的一系列操作;安装前准备:安装wget,用于下载文件,命令:yum install wget -y安装lrzsz,用于上传文件资料,命令:yum install lrzsz -y如果要跨机器访问需要开启端口号,在root用户下使用命令(0000表示要开启的端口号):firewall-cmd --zone=public --a...

2019-07-18 14:43:29 2258

原创 微信公众号网页授权,redirect_uri参数错误,解决方法

最近在做微信服务,遇到一些问题,比如:微信公众号网页授权,redirect_uri参数错误,但是网上好多文章说不清楚,反反复复修改,还是不行。微信公众号里的回调只能是完整域名,比如你访问http://www.xx.com/authorize进行认证,但是回调要填写www.xx.com,然后请求的时候参数是要填写http%3a%2f%2fwww.xx.com%2fauthorize,必须进行UR...

2019-06-18 11:26:02 15014 10

原创 Mockito测试封装

Mockito测试用例Mockito测试基类Controller测试用例基类Controller 测试使用示例:ServiceImpl 测试用例基类ServiceImpl 测试使用示例:VO测试基类VO测试使用示例:Mockito测试基类在开发中,经常需要写测试用例,来测试业务或者服务是否正常,一般会用到M ockito测试框架进行编写Controller和ServiceImpl的测试代码。...

2019-03-30 15:46:05 619

原创 根据URL上传文件/图片

1、使用场景:远程文档服务器,给定接口,请求参数格式等信息,系统根据配置的路径及后缀,获取指定类型的文件,在应用中上传文件/图片到服务器中。然后将成功的返回结果信息中的fileId内容保存到数据库中,删除对应的文件。响应结果示例:2、应用方法:创建HttpClient 来实现 httpPost 方式访问文档服务器,发送上传请求上传文件。        执行上传的基本操作:   ...

2019-02-21 16:06:59 8637

原创 spring security 学习和踩坑总结(入门)

Java Web项目的权限管理框架,目前有两个比较成熟且使用较多的框架,Shiro 和 Spring Security ,Shiro 比 Spring Security更加轻量级,但是需要手动配置的东西较多,Spring Security 和 Spring 集成更好,甚至直接适配了Spring Boot。一、最简单的使用:1.1、配置及使用要使用Spring Security 首先要引...

2018-09-23 10:17:55 22989 8

原创 Js处理Form表单空提交问题

对于 Form 表单提交数据,有时候页面没有任何字段需要进行校验,但这样就会导致不填写任何数据,都可以直接保存、编辑,产生很多无用的记录,这样的体验很不好,我们需要能进行判断是否表单全局为空,如何解决这种问题 ?实现思路:首先拿到 Form 表单中的所有 input、textarea、select 的数据(一般使用:$("#xxxForm").serialize() 方式),然后因为经常载...

2018-08-23 11:51:09 3882

原创 jpa2.x的getOne()/findOne()/findById()的区别及使用

使用spring-cloud 2.0.3时,加入了spring-boot-start-data-jpa依赖之后并配置完成,然后进行测试:这是service 方法,注入了IUserInfoDao接口(继承JpaRepository&lt;UserInfoModel, Integer&gt;); @Override public UserInfoModel getById(In...

2018-08-02 13:27:07 27952 13

原创 根据URL下载文件/图片

根据URL下载文件、图片的方法1、应用场景:远程文档服务器返回json结果,内容包括文件名称,文件路径,文件类型等信息,使用流(InputStream),通过文件路径去下载文件、图片。远程文档服务器返回json结果如下图:2、应用方法:先将返回的结果(代码中的fileData)进行转换为Map,获取其中key为data的数据,如文件名,文件路径信息,然后设...

2018-05-11 11:41:16 4730

原创 freemarker数字逗号分割的问题

freemarker在数字回显时,如果数字比较大,会自动用“,”分割开,然而,此时传递到后台的时候,并不会按照int/long处理,而是当作String字符串处理,所有会报类型不匹配的异常,解决这个问题,只需要在application.properties文件中加入spring.freemarker.settings.number_format=#即可...

2018-01-21 22:03:36 3143

原创 CentOS 7安装 Redis 3.2.x(单机)

一、准备操作:1、先安装虚拟机,这里已安装VmWare14.x;2、安装Linux操作系统,这里安装了CentOS7,另:确认已安装rz/sz命令,如果没有,运行:yum install lrzsz 即可;3、下载Redis,在官网下载,这里用的是Redis3.2.11,一定注意,Linux版本的Redis,后缀是.tar.gz;4、准备好windows和linux链接的软件,...

2017-12-14 23:29:05 432

原创 CentOS7开启端口(永久)

redis等服务启动后,外网默认是无法访问的,因为防火墙不允许,所以要开启防火墙,让其可以访问这些端口号。方法一:使用firewall1、运行命令:firewall-cmd --get-active-zones运行完成之后,可以看到zone名称,如下:2、执行如下命令命令:firewall-cmd --zone=public --add-port=6379/tcp --per...

2017-12-13 00:11:29 137598

原创 使用git-命令操作

1、打开git hash命令窗口;2、使用git checkout 'branchName'进入主分支下(xxx为分支名称,如develop);3、使用git pull命令从主分支拉最新的代码;出现如下显示,表示pull完成4、pull完成之后,再使用git checkout branchName进入自己的分支下,以免下次直接提交到master主分支5、...

2017-12-05 11:42:32 16094 4

空空如也

空空如也

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

TA关注的人

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