自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(124)
  • 收藏
  • 关注

原创 python+vue生成条形码码并展示

直接返回给前端展示。大概思路是,通过生成条码的字节流,生成字节流后直接编码成base64格式返回给前端,前端通过img标签展示base64格式的图片。

2023-08-08 21:51:00 394

原创 python中for..in语法的原理?

如果判断正确,students[sid],在迭代三次后,应该会抛出数组越界的异常IndexError,所以我怀疑可能是解释器把捕捉到IndexError异常作为了迭代终止的条件。但这么做有个问题,sid就不是学号了,而是students数组的下标,这和业务的语义是不相符的。以Java为例,需要通过迭代器来迭代集合元素,集合元素通过next()方法获取元素,通过hasNext()方法探测迭代的终点。通过中括号加学号的方式,可以获得对应学号的学生,代码顺利执行,没问题。修改代码,在第10次循环时,抛出异常。

2023-08-02 19:48:52 319

原创 win11如何从文件管理器快速打开windows terminal(wt)?

如果你使用的不是powershell,list中每一个元素都可以加一下这个配置。可以通过修改下面的配置,实现cmd类似的效果,即打开wt后默认就是当前目录。不过和cmd不同,wt打开后默认目录不是刚才的文件夹,而是用户目录。路径栏中输入wt即可。左下角打开json文件。

2023-05-31 21:19:11 1249

原创 基于SpringBoot的线上日志阅读器

支持通过web查看线上日志,不费内存,分页加载,可以阅读大文件日志。

2023-04-27 21:22:38 2201

原创 Python datetime基本使用

time提供的功能更加接近操作系统层面,主要调用C平台的C libarary的同名函数,表现的日期范围仅限于1970-2038。这里的time指的是大模块的time,不是datetime中的time运行结果datetime功能更加丰富,个人一般喜欢用datetime。运行结果。

2023-04-23 20:45:29 395

原创 基于PySide6的MySql数据库快照备份与恢复软件

db-camera是一款MySql数据库备份(快照保存)与恢复软件。功能上与dump类似,但是提供了相对有好的交互界面,能够有效地管理导出的sql文件。

2023-03-04 12:03:33 791

原创 Mybatis相同sql两次查询的结果不一样?

客户端请求到达服务端后,两次执行相同的查询sql,得到了两个完全不一样的结果。(两次查询之间没有修改过相关的表)

2023-02-09 18:41:18 1958

原创 Python json常见用法

这里可以理解为将python中的各种数据结构转化为json字符串的过程。涉及api:dump、dumps反序列化:将输入的json字符串,转化为python对象的过程。涉及api:load、loads以反序列化为例,如果需要从文件中读取数据,则使用load,直接传入文件描述符。简而言之,就是需要从文件中读写数据时,使用load、dump,否则使用loads、dumps如果是自定义的对象,需要先将对象转化为字典类型,再使用json库相关的api。

2022-12-24 21:10:08 497

原创 Java相对路径与类路径详解

相对的是工作目录# 相对的是class文件所在的根目录# 相对的是ClassPathDemo.class所在的目录# 相对的是class文件所在的根目录,并且一定不能加斜杠。

2022-10-07 20:57:10 11173 3

原创 Python桌面文件清理脚本

桌面临时文件较多时,直接删了不太放心,不删又显得很杂乱,故需要写一个脚本批量清理并备份这些鸡肋的文件。所以脚本需要具有以下功能:1. 可以将桌面文件移动至指定文件夹(可配置)。2. 可以设置例外文件,比如桌面图标不需要移动,部分常用的文件也不需要移动。3. 出现同名文件时,不能直接覆盖,需要加一个日期后缀予以区分。例如更名为 helloworld-2022-08-30.txt。...

2022-08-30 09:25:19 288

原创 [Spring源码阅读]通过Assert校验参数

在Spring源码中发现了另一种相对更优雅的写法,通过Assert校验参数。该工具类位于包: org.springframework.util。

2022-08-23 22:42:06 567

原创 [Spring源码阅读]如何通过配置文件管理策略

策略,可以理解为解决某个问题的具体方法。当一个问题的解决方法有多种,并且需要根据具体场景灵活替换时,我们可以使用策略模式。策略模式的概念不多说,借网上的图来描述一下:策略的实现依赖于具体的业务场景,这个没什么好说的;但是策略的管理是一种比较通用的方式,也是本文探讨的主要内容。以上图为例,Context维护着策略的实现,executeState接口屏蔽了这种实现。除了提供获取策略的途径外,Context还需要做下面两件事:1. 策略收集。

2022-08-21 22:30:05 243

原创 Java AtomicInteger类的实现细节

Java AtomicInteger的基本原理以及使用场景

2022-07-14 20:58:51 381

原创 SpringBoot打包提示”程序包XXX不存在,找不到符号“

今天打包SpringBoot多模块项目的时候遇到了一个坑的问题。有时候打包成功,有时候打包不成功。打包不成功的话会报错 ”XXX程序包不存在,找不到符号“。即使打包成功后,也有如下报错: 奇怪的是IDEA里直接运行是可以的。最后发现是SpringBoot打包插件的问题:多模块项目打包的时候,需要把插件放在启动类所在的模块。假设目录结构如下:root.pom.xml--------A.pom.xml--------B.pom.xml--------C.pom.xml如果启动类在B.pom.xml,那么一定要

2022-07-12 17:03:32 2063

原创 《程序员的职业素养》读书笔记

最近阅读了一本很经典的书,叫做《程序员的职业素养》,收获颇丰,同时也意识到自己与专业程序员之间存在很大的差距,本文是阅读过程中的一些记录。本文以及后续读书笔记类的一些博客,只记录博主自认为比较重要部分。并且希望自己能做到读书过程中能留下痕迹、记录的东西能定期回顾。如果您阅读过程中发现任何错误,欢迎指正,不甚感激。作者建议每周除工作40小时外,应该有20小时的学习时间,用于提高自己。24种设计模式。设计原则,SOLID原则,深刻理解组件设计原则。方法。理解XP、Scrum、精益、看板、瀑布、结构化分析与结构化

2022-07-03 20:57:55 462

原创 SpringBoot 整合多数据源

mybatis提供的@MapperScan注解中有一个属性叫做sqlSessionTemplateRef,通过给这个属性提供不同的模板实现,可以在同一个项目中使用多数据源。不过这种方式只能以包的粒度划分,最终的效果大概是:对com.XX.A包使用1号数据源,对com.XX.B包使用2号数据源。如果需要更精细化的控制,可以考虑使用第三方框架,但不在本文涉及范围内。GitHub - baomidou/dynamic-datasource-spring-boot-starter: dynamic datasour

2022-06-22 19:27:16 1458

原创 Mockito详细教程

Mockito详细教程,介绍了SpringBoot环境下如何使用Mockito辅助单元测试。

2022-06-19 21:16:26 19711 7

原创 Linux环境下查看日志的常用命令

目录tailheadcatlesssedhistorytail作用:查看日志的后多少条记录。常见场景:查询最后一百行tail -n 100 sys_2022-03-30.0.log也可以简写为tail -100 sys_2022-03-30.0.log查看实时日志tail -100f sys_2022-03-30.0.log 或者tail -fn 100 sys_2022-03-30.0.log 还可以根据关键词过滤tail -f

2022-04-05 22:16:19 1457

原创 Nginx的基本使用

nginx的主要使用场景动静分离适用于前后端分离的项目,nginx根据请求的内容做区分处理。如果客户端请求的内容是静态资源,则nginx直接读取资源并返回,也就是说nginx可以作为静态资源的服务器。为了提高响应速度,避免重复的io操作,nginx提供了静态资源的缓存功能(需手动配置)。如果客户端请求的是后台的服务而非静态资源,则nginx则直接将请求转发给对应的服务。正、反向代理不管是正向代理还是反向代理,说到底都是代理,区别在于”代理“这个操作是在哪一边做的(服务端还是客户端)。以

2022-04-05 16:22:51 9162

原创 MySQL事务的ACID特征与隔离级别

MySQL事务的ACID特征以及四个隔离级别指的是什么?

2022-03-18 12:53:51 997

原创 面向对象五大基本原则理解(SOLID)

SOLID五大基本原则通俗解释以及对应的代码示例。

2022-03-13 22:53:37 1233

原创 [jdk源码阅读]Java HashMap的设计思想

HashMap的作用Map是一种数据结构,用于存放Key-Value形式的数据。HashMap是一种依赖Hash来实现数据检索的Map,借助它我们能够以接近O(1)的时间复杂度快速存取数据,效率极高。HashMap工作中用到的非常多,之前也有看过源码,不过没有好好总结一下,今天以博客的方式做一个记录。HashMap的基本结构试想一下,如果让我们来设计HashMap,该怎么设计?1、首先数据的形式是Key-Value的形式,需要用一个类绑定其关系,暂定这个类为Node。Node{

2022-02-20 17:51:36 564 1

原创 JavaFX实战:工具集汇总

JavaFX实战项目

2022-02-09 17:26:10 1954

原创 基于JavaFX的数据库字段注释工具

JavaFX实战:数据库字段备注小工具

2022-02-09 16:51:28 919 3

原创 基于JavaFX的端口冲突检测工具

JavaFX实战项目:端口冲突检测工具

2022-02-09 16:05:50 764

原创 Java中什么情况下需要重写hashCode()和equals()

重写hashCode()与equals()的必要性只有在使用HashMap、HashSet等数据结构时,并且存储的对象是我们自定义的对象时,才需要重写。基本类型的包装类以及String已经有了默认实现。例如Integer类 public static int hashCode(int value) { return value; }以及String类 public int hashCode() { int h = hash;

2021-12-31 11:19:22 2017

原创 go闭包中的变量是否是共享的?

问题可能题目的描述不是很准确。题中的”共享变量“,主要出现在go中闭包的一种用法——将函数作为返回值。比如可以用这种方法实现下面的累加器(代码来自于 《the way to go》)func adder() func(int) int { var x int return func(i int) int { x = i + x return x }}写一个主函数测试以下package mainimport "fmt"func main() { fmt.Pr

2021-12-08 18:49:22 405

原创 JavaFX TextArea组件报错ArrayIndexOutOfBoundsException

TextArea动态刷新时报错数据越界ArrayIndexOutOfBoundsException

2021-12-01 18:39:48 527

原创 go mod 使用方法

go mod是go的一个模块管理工具,用来代替传统的GOPATH方案。下面是基本的使用方法:假设我现在想要创建一个工程来学习go的语法,路径为 E:/go/grammar。1、cd进入grammar文件夹2、初始化目录go mod init dayrain.cn/grammardayrain.cn/grammar是一个标识,一般是 主机名+模块名初始化后,会自动创建一个go.mod文件,有go的版本号,以及所依赖的模块信息。3、导入自定义的模块新建一个lib1包,写一.

2021-11-25 23:35:27 7791 1

原创 Java自带的Http Server如何设置返回值的类型(content-type)

以返回Json格式的数据为例:首先我们要自己写一个请求的处理器,需要实现HttpHandler接口,并重写handle方法。handle方法会获得一个HttpExchange,通过exchange可以设置返回值内容与长度private void response(HttpExchange exchange, String jsonBody) { try { byte[] bytes = jsonBody.getBytes(StandardChars.

2021-11-17 13:57:05 3329

原创 前缀树是什么

前缀树(Trie树),又称字典树、单词查找树。常用于文本词频统计,可以最大限度的减少字符串比对的频率。大概的结构如下:每个结点都维护着一个next结点数组(普通链表维护的是next结点),大概形式如下: class TrieNode { public int val; public TrieNode[]next = new TrieNode[26]; }除了next数组外,可能还有其它的成员变量,例如上面的val,可根据具体场景定义。n

2021-11-15 09:06:36 518

原创 基于JavaFX的Http Server模拟器

源码地址GitHub - DayRain/http-server-simulator: http server 模拟器功能描述HttpServer模拟器,通过简单的配置即可模拟第三方服务端,用于接收和响应HTTP请求。支持同时模拟多个服务、动态添加接口、动态配置返回值。使用说明运行exe运行编译代码后,点击exe直接运行代码运行下载好代码后,运行主类ApplicationStarter即可新建服务主界面如下点击 文件-新建 创建新的服务...

2021-10-29 11:56:59 1743 10

原创 JavaFX 设置TitledPane Head标题的高度

TitledPane是JavaFX中的折叠面板,大概这个样子直接调用 titledPane.setPrefHeight(); 设置的是整个Pane的高度。而我现在只想调整标题的大小,而不是整个Pane的大小,可以这么做。可以理解为用一个又高的的HBox来撑大TitledPane。效果如下:...

2021-10-28 09:57:58 444

原创 JavaFX ListView删除自定义的单元格时数据不更新

使用ListView组件时,可能会自定义单元格,大概效果如下(红框)。发现一个奇怪的问题,向ListView添加数据时,可以正常刷新列表。但是删除组件时,列表死活不更新。一番折腾后,发现了问题所在ListView通过调用updateItem方法绘制我们自定义的单元格,删除一个单元格后,item变为了NULL。这个时候我们要加个判断,如果item为NULL,则应该手动清空cell上的图形节点。...

2021-10-27 19:03:57 573

原创 workbench与C++对应版本

最近需要在服务器上装个mysql,服务器C++版本是2013,最新的workbench都要求C++版本为2019。无奈之下只能下之前版本的workbench,经过一番尝试,终于成功了。如果C++版本是2013,那么下workebench-6.3.5附近的版本刚好合适。地址:MySQL :: Download MySQL Workbench (Archived Versions)...

2021-09-23 11:28:36 418

原创 SpringBoot获取当前环境

一个项目中出现多个环境的配置文件在代码里我们可以通过下面的方法获取当前的环境。首先,为了拓展性,我们需要定义一个枚举,用做环境的区分public enum EnvEnum { DEV,PROD,TEST}其次,定义一个Sping工具类,获取上下文中的环境,做一个匹配。@Componentpublic class SpringUtils implements ApplicationContextAware { private static Application

2021-09-03 09:21:03 2669

原创 Java中的协变与逆变、泛型上下边界(extends、super)

目录协变数组Java泛型普通泛型通配符上边界extends:协变下边界super:逆变使用场合协变与逆变是一个宽泛的概念,并不只存在于Java。以经典的Animal、Cat为例class Animal{ @Override public String toString() { return "animal"; }}class Cat extends Animal{ @Override public St.

2021-08-31 10:57:20 817 8

原创 [Spring源码阅读]第一篇:ApplicationContext与BeanFactory有什么区别?

概述工作中和ApplicationContext打交道的场合应该还是比较多的。例如,我可以通过ApplicationContext从Spring IOC容器中取出某类Bean放入自己的map中,用于策略替换:其实这种用法体现了ApplicationContext的一个作用:IOC容器。BeanFactory从名称上看来,也是一个容器,它与ApplicationContext有着何种联系?ApplicationContext是BeanFactory的一个拓展。结构分析以Ann.

2021-08-27 11:16:06 219

原创 [Mybatis源码篇]五、Mybatis执行一条sql的全过程

首先是环境准备,SqlSessionFactory初始化时会解析xml配置文件,解析为Environment、Configuration对象通过SqlSessionFactory获取一个SqlSessionSqlSession中包含一个执行器Executor以及配置类实例:Configuration对象,主要用于sql的执行,是mybatis的核心组件。随后通过SqlSession我们可以拿到Mapper的代理对象,代理对象在创建过程中需要我们定义的mapper接口通...

2021-08-25 10:27:49 876

原创 nginx笔记

1、安装yum安装官网教程:http://nginx.org/en/linux_packages.html#RHEL-CentOS安装yum工具包sudo yum install -y yum-utils创建repo文件vim /etc/yum.repos.d/nginx.repo把下面的内容复制进去[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$bas

2021-08-23 17:16:17 351

空空如也

空空如也

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

TA关注的人

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