说明:本文介绍设计模式中行为型设计模式中的,责任链模式; 审批流程 责任链模式属于行为型设计模式,关注于对象的行为。责任链模式非常典型的案例,就是审批流程的实现。如一个报销单的审批流程,根据报销单金额大小,需要不同的职位领导审批,金额越大,审批人的职务越高,如下: 代码如下: (Staff,财务专员,审批金额不超过5000) /财务专员/ publicclassStaff{ privateStringname; publicStaff(Stringname){ this.name=name; } /审批@paramamount金额@return是否通过/ publicboole...

  TEZNKK3IfmPf   2天前   5   0   0 设计模式java

说明:本文介绍设计模式中结构型设计模式中的,适配器模式; 插头转换器 适配器模式属于结构型设计模式,设计思想体现在结构上的。以插头转换器为例,当你需要给手机充电,但是眼前只有一个三孔插座,二脚充电器无法使用三孔插座。 这时如果有一个插头转换器,可以将二孔插头转为三脚插头,就可以解决眼前问题。这个转换器扮演的就是适配器的角色。如下: (TwoPin,二脚插座接口,只提供二脚插头充电) /二脚插座/ publicinterfaceTwoPin{ /二脚充电/ publicvoidcharge(intl,intr); } (ThreePin,三脚插座接口,只提供三脚插头充电) /三脚插座/...

说明:使用fastjson时,对象解析不成功,一直报错,但是json格式没有错; 错误信息:Methodthrew‘com.alibaba.fastjson.JSONException’exception. json数据是正确的 分析:注意看,fastjson下面还有一行绿色的信息详情,说创建实例错误; 一看实例化的对象类,猜测是不是没有加全参构造,加上看看; 加载全参构造 加上注解,解析成功,问题就是没有加全参构造,封装对象失败

  TEZNKK3IfmPf   2天前   8   0   0 json

说明:elasticsearch是目前最流行的搜索引擎,功能强大,非常受欢迎。本文介绍在CentOS7系统下,安装es和es的可视化界面kibana,远程连接工具是WindTerm; 第一步:安装es 启动docker,拉取es镜像,版本号选择:7.12.1 dockerpullelasticsearch:7.12.1 我这里是已经拉取过了,首次拉取需要一点时间; 第二步:安装kibana 再拉取一个es的可视化界面kibana,版本号选择:7.12.1 dockerpullkibana:7.12.1 第三步:创建网络 es容器和kibana容器需要互联,需要创建一个网络环境 do...

说明:SQL调优中重要的一个环节是建立索引,其中有一条是字段值过长字段应该建立前缀索引,即根据字段值的前几位建立索引,像数据库中的密码字段、UUID字段。 因为其随机性,其实根据前几位就可以锁定某一条记录了。前缀索引可以用尽可能少的代价得到目的,毕竟索引也是需要内存和维护成本的。本文介绍如何建立一个前缀索引。 索引的长度怎么选? 建立前缀索引前,我们需要知道选该字段值的前几位建立索引,要求是根据前缀的这部分就可以锁定某一条数据。比如,我下面的这张表,有1000万条记录,我想对password字段建立前缀索引; 可以敲下面这个SQL,找出前缀索引的长度; password字段值前10位去重...

  TEZNKK3IfmPf   2天前   5   0   0 数据库sqlmysql

说明:在SpringBoot项目中,我们添加了许许多多的注解,这些注解提高了开发效率。这是因为SpringBoot在项目启动时,帮我们自动装配了大量的Bean对象,可以通过分析源码查看自动装配的大致原理。 第一步:@SpringBootApplication 进入到启动类中的@SpringBootApplication注解中,该注解里面有七个注解,上面四个是元注解,无需理会,下面三个注解分别表示: @SpringBootConfiguration:该注解内包含@Configuration注解,表明该类是一个配置类; @EnableAutoConfiguration:自动装配注解; @Com...

  TEZNKK3IfmPf   2天前   5   0   0 javaspringSpringBoot

修改/etc/profile来设置环境变量与在/usr/bin下面设置超链接,这两者之间存在显著的区别。 首先,修改/etc/profile文件主要是为了设置环境变量。环境变量是操作系统中用于定义系统运行环境的一些参数,它们对系统的运行方式和应用程序的行为有着重要影响。/etc/profile文件是系统级的配置文件,当系统启动或者用户登录时,该文件会被执行,从而设置或修改系统的环境变量。这些环境变量可以是全局的,对所有用户都生效。例如,PATH环境变量就是用来预设可执行文件或命令的搜索路径,修改它可以影响系统中所有用户或应用程序对命令或程序的查找方式。 其次,在/usr/bin下面设置超链...

  TEZNKK3IfmPf   2天前   7   0   0 服务器linux

说明:设计模式根据用途分为创建型、结构性和行为型。创建型模式主要用于描述如何创建对象,本文介绍创建型中的单例模式。 饿汉式单例 单例模式是比较常见的一种设计模式,旨在确保对象的唯一性,什么时候去使用这个对象都是同一个。这样设计的目的是为了避免对象重复创建,浪费资源,同时也保证了对象的唯一性,不至于多个相同的对象,状态不一致的情况。 以下是单例模式的简单实现: /太阳类/ publicclassSun{ privatestaticfinalSunsun=newSun(); privateSun(){ } publicstaticSungetInstance(){ returnsu...

说明:如果需要查看某一条SQL查询速度慢,并对慢的SQL进行优化,那么开启MySQL慢查询日志是一定要做的事情,本文介绍如何开启MySQL的慢查询日志; 查看MySQL慢查询是否开启 首先,输入下面的命令,查看MySQL慢查询的配置; showvariableslike'slow_query_log'; OFF,表示未开启; 开启MySQL慢查询 输入下面的SQL,开启MySQL的慢查询; 开启慢查询 setGLOBALslow_query_log=on; 查看慢查询设置的时间,单位是秒,默认的是10秒; 如果需要修改,可以输入下面这个SQL进行修改; 修改慢查询的时间为5秒,即...

  TEZNKK3IfmPf   2天前   6   0   0 数据库mysql慢查询

说明:记录一次使用String.valueOf()的坑,以下是一段有问题的代码: Stringcount=String.valueOf(listData.get(0).get(0).get("count"); if(StringUtils.isBlank(count)||"0".equals(count)){ result.setResult(page); returnresult; } 问题分析 其中,listData是调用数据库存储过程,返回的数据集合,是List<List<Map<String,String>类型的,表示多个结果集,每个结果集有多...

  TEZNKK3IfmPf   2天前   6   0   0 字符串java数据库

说明:在转账业务中,具体到数据库中,操作有两步: 1)把转账人的账户金额转账金额; 2)被转账人的账户金额+转账金额; 这两步操作共同执行,才算完成了转账业务,但如果在执行第一步后,发生断电、报错等原因,导致第二步未能执行。对数据的部分操作,导致数据库中的数据失去一致性,而事务就是为了解决这类情况的。 一、事务(Transaction)的特点 事务具有以下四个特点,称为ACID: 原子性(Atomicity):事务包括的代码是最小的执行单元,要么都执行,要么都不执行; 一致性(Consistency):事务执行前后的数据,是一致的。即,要么事务执行失败,数据不发生变化;要么执行成功,数据发...

  TEZNKK3IfmPf   2天前   5   0   0 java数据库sql

说明:之前对Git本地仓库的基础使用总结过一篇笔记,Git本地仓库使用,本文对Git的一些基础命令进行补充。 一步提交 通常,我们本地仓库使用Git,文件都需要先add,将文件从工作区加入到暂存区,然后再commit,将暂存区的文件提交至版本库。 但是对于已经加入暂存区的文件,后续对文件内容的修改。可以输入下面这个命令,将两步合成一步,如下: gitcommit-am'comment信息' 需要注意,仅对已加入到暂存区的文件有效,如果是新建的文件,不能使用; 查看差异 当我们commit版本库时,可以输入下面的命令查看一下版本库中的最新状态与当前工作区的差异; gitdiff 查看...

  TEZNKK3IfmPf   2天前   5   0   0 gitgithub

说明:在使用RocketMQ发送消息时,出现下面这个异常(org.springframework.messging.MessgingException:sendDefaultImplcalltimeout……); 解决:修改RocketMQ中broke.conf配置,添加下面这两行配置,重启服务后再试就可以了; brokerIP1=换成RocketMQ服务器的IP autoCreateTopicEnable=true 启动时,注意使用下面的命令,带上配置文件 ./mqbroker-nlocalhost:9876-c../conf/broker.conf

  TEZNKK3IfmPf   2天前   5   0   0 javaRocketMQ

说明:tomcat是后台服务器,安装完成后,不想配置环境变量,可以通过tomcat安装目录下bin文件夹内的startup.bat、shutdown.bat来启动和关闭tomcat; tomcat默认占用的是8080端口; 打开浏览器,输入:http://localhost:8080,可以打开tomcat服务器的默认页但有时候,我们需要修改tomcat的默认占用端口;可以通过tomcat安装目录下,conf文件夹里面的server.xml文件来修改;(如果提示没有修改文件权限,可以将server.xml文件先移动桌面上,修改完之后再拖回去替换掉原文件)重启下tomcat,试下修改端口是否成...

  TEZNKK3IfmPf   2天前   9   0   0 服务器tomcatjava

说明:在微服务架构中,用户身份经网关验证后,我们可以将用户信息,如ID加入到请求头上。后面的微服务中,可以设置一个拦截器,拦截请求,获取请求头上的用户ID,加入到ThreadLocal中。 最重要的是,在当前微服务发起请求,调用其他微服务时,需要将发出去的请求再进行拦截,把本地线程池中的用户ID再次放入到请求头中,这样就实现了用户信息在微服务中的流转,称为参数透传。本文介绍,上述参数透传的实现。 在微服务系统中,一般都会有一个共同模块,是所有微服务共同引用的模块,比如模块名为Base、Util、Feign-API,我们可以把参数透传的拦截器写在这个模块里面,这样其他微服务就不用...

说明:如果有自己动手做过字符动画,会知道字符动画的“灵动性”核心在于使用的字符集。 简单来说,动画转为字符动画,原理是将动画转为灰阶图,灰度范围是0255,然后将对应灰度的像素点转为对应比值的字符。这里的对应比值,就是要求使用的字符集中的字符,亮度应该均匀。 而字符的亮度,就取决于字符部分占字符全部部分的占比,占比越高,越亮,如下; 本文介绍,如何使用Python程序计算这个比值; 准备字符图 首先,准备你需要的字符图片,图片大小应该仅包含字符内容,不能多,不能少; 以下图片是我在Windwos画图工具里,敲一个字符,放到最大后,手动一个个截出来的,可能会有偏差,应该用PS会更好; ...

  TEZNKK3IfmPf   2天前   5   0   0 python开发语言

说明:Redis数据是存储在内存中的,Redis服务被关闭,数据是会被清除的。但Redis有数据持久化机制,在默认情况下,停止Redis服务会触发数据持久化机制,将数据保存下来,在下次启动时再读取出来。 Redis中有以下两种数据持久化方式: RDB RDB(数据备份文件,RedisDatabaseBackupfile),也叫做数据快照,其实就是将所有数据生成为一个快照文件,保存到磁盘中。快照文件为.rdb文件,默认保存在当前运行目录下; 以下四种情况会执行RBD持久化: save命令 bgsave命令 redis停机时 触发RDB条件时 (1)执行save命令 save命令是主进程执...

  TEZNKK3IfmPf   2天前   6   0   0 数据库缓存redis

说明:MinIO是文件资源服务器,相当于免费的OSS,安装参考:Minio使用及整合起步依赖; 如果你的桶(Bucket)权限设置的是“Private”,那么可能会有数据泄露的风险。像别有用心的用户,可以通过抓包,获取到Minio服务器的地址和桶名; (如下,simple桶下有这两个文件) 假如项目中,我们给用户提供了"文本文件.txt",那么服务器肯定会把下面这个URL响应给前端,包括了MinIO服务器的地址和该文件所在的Bucket名,最后是文件名; 现在如果这个地址被人通过抓包工具,抓包得到,那么就可以通过去掉文件名,直接获取到该Bucket下的所有文件清单,如下,可以看到该Buc...

  TEZNKK3IfmPf   2天前   7   0   0 服务器

说明:启动RocketMQ消费者时,报以下错误:java.lang.IllegalStateException:FailedtostartRocketMQpushconsumer. 解决:看下所有的监听器类,检查是不是有相同的消费者组名,注释掉其中一个即可;

  TEZNKK3IfmPf   2天前   6   0   0 javaRocketMQSpringBoot

说明:最早出现这个需求,来自博主阅读《罪与罚》,书中陀思妥耶夫斯基有太多的语言描述,以至于我想知道这本书中到底出现了多少对白。文本介绍如果使用python程序统计一本书中的对话,角色名称,标点符号。 找到文件 首先,需要找到你要统计的小说文本文件,如下,分别是《罪与罚》、《白鹿原》两本书的文本文件。 设置统计清单 如果是统计语言描写是不需要的,但如果你需要统计小说中的角色名称,那就需要把角色名称的姓名都罗列出来,当然越多越准确,如下: 《白鹿原》中的角色名称 nameTwo=[ "白灵", "皮匠", "鹿三", "黑娃", "兔娃", "郑芒", "方升" ] nameThree=[...

  TEZNKK3IfmPf   2天前   8   0   0 服务器javapython
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~