自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用selenium做一个发布CSDN文档的脚本

下面是脚本的全部代码,从登录到完成文章发布的全过程,包含了大部分。

2023-06-09 09:30:53 279 1

原创 工作随笔——nohup启动python3脚本,并记录日志

【代码】工作随笔——nohup启动python,并记录日志。

2023-03-28 09:08:04 329 1

原创 学习笔记——Java Stream 源码学习

Java Stream 源码学习

2022-11-24 17:08:12 897

原创 数据库update、delete误操作,使用binlog2sql手动回退

数据库update、delete误操作,使用binlog2sql手动回退

2022-11-03 11:35:26 3230

原创 Spring中类内部调用方法AOP失效的原因

Spring中类内部调用方法AOP失效的原因

2022-10-28 17:15:35 2882

原创 工作笔记——海康威视网络摄像头接入华为云VIS服务

海康威视网络摄像头接入华为云VIS

2022-08-12 08:40:51 3369 2

原创 正向代理与反向代理的概念

正向代理与反向代理的概念

2022-08-10 10:39:06 279

原创 VUE局部修改ElementUI样式

VUE局部修改ElementUI样式

2022-08-10 10:07:57 715

原创 学习笔记——操作系统之进程与线程

参考文章本文仅记录对作者来说相对关键的概念进程是什么进程是对正在运行中的程序的一个抽象。这么说可能有些难以理解。在我的理解下,一个完整的程序由它所必须的一堆文件组成。那么这堆文件就叫做一个程序。当你使用某个方式将这个程序运行起来后,在操作系统中就会出现一个这个程序的进程。进程操作系统的其他所有内容都是围绕着进程展开的。进程是操作系统提供的最古老也是最重要的概念之一。即使可以使用的 CPU 只有一个,它们也支持(伪)并发操作。它们会将一个单独的 CPU 抽象为多个虚拟机的 CPU。(伪)并发操

2021-08-04 16:55:04 97

原创 总结笔记——List

ListArrayList简单说说ArrayList底层数据结构是数组,基本作用是一个可动态扩容的数组结构。Java本身的数组在声明时必须给定数组大小,但是在开发过程中这个大小基本上是不确定的。初始化流程当我们使用无参的构造函数声明一个ArrayList对象时,默认会有一个空的Object数组。当第一次调用add方法时,会给数组初始化一个大小,这个大小默认为10。其实每次调用add方法时,都会检验数组空间是否足够,如果够的话直接追加,反之则需要扩容。扩容方法源码中有一个grow方法,用来给A

2021-08-04 11:38:14 116

原创 简单记录TCP建立连接与断开连接的理解

首先tcp协议是一个提供可靠连接的协议,并且是一个双全工协议(即数据在两个方向上能同时传递)。什么是三次握手。建立连接为什么是三次握手因为tcp提供可靠连接的协议,这个可靠我理解是相对的。而与之比较的就是udp协议,tcp在建立连接之前会发送一个报文段,被请求方若接收到了对方会回复一个报文段,请求方在接收到确认后,会再回复一个确认的报文段。三次其实是完成双方确认的最少次数。为什么是四次分手为什么连接需要三次握手,而断开连接需要四次握手。根本原因是,tcp协议是一个双全工协议,再建立连接之后双方

2021-07-09 16:59:54 294 3

原创 工作笔记——记一次Java正则表达式的使用

分组多次匹配 private String checkVersionCode(String versionCode) { String pattern = "^([0-9]*[.][0-9]*)+[0-9]$"; if (Pattern.matches(pattern, versionCode)) { String pattern1 = "([.][0]+([^.]))"; Pattern r = Pattern.com

2021-06-18 15:22:57 77

原创 学习笔记——Java ArrayList 源码阅读

1、源码阅读ArrayList中使用了Object类型的数组来存储数据。如果此时调用无参的构造函数实例化一个对象,此时elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA ,此时的ArrayList容量为0在调用add方法时会调用ensureCapacityInternal验证此时容量是否足够容纳添加的元素ensureCapacityInternal判断此时elementData是否为默认空数组,如果是空则会赋值为默认容量DEFAULT_CAPACIT

2021-05-27 11:13:17 89 1

原创 Python Django3.0 TypeErro:argument of type ‘PosixPath‘ is not iterable

一、问题django项目总是因为此原因异常停止,bug不可复现,只能在异常停止后捕捉到此异常。二、解决最后在StackOverflow上找到此问题,回答说原因是django3.1之后的版本均有发现此问题,我使用的版本为3.0同样会出现此问题。最终解决方式将settings中的DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sql

2021-05-18 10:38:42 346

原创 spring使用@Scope注解配置bean多例时遇到的问题

一、问题需要配置一个bean为多例模式,查询资料之后需要使用@Scope注解或使用配置文件。我这里是用的注解的方式。只需要将@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)添加在类的上方,即可将bean的作用域设置为prototype。但是在我注入了配置好的bean之后,测试后发现此bean仍是单例,后猜测注解未生效,再次查询后得到这个答案,将注解的属性设置为如下所示@Scope(value = ConfigurableBeanFactory.SCOPE_

2021-05-18 10:20:15 1635

原创 学习随笔——算法

随便写写之前学中间件学的有点魔怔了,到了代码中我才发现。好多基本的算法都要百度复制粘贴,属实有点方向错了的意思了。所以上周就利用工作的中的碎片时间尝试刷LeetCode算法题。现在有了一定的代码量之后,现在也慢慢找到了解决算法问题的乐趣所在。希望能坚持下去,像写博客一样。简单计划目前打算先从但数据类型开始,比如从数组开始由易到难进行一周的刷题,期间碰到了经典的算法或者一些算法思想,就单独去看,然后记录在对应的算法代码上面并提交到git,以便以后再拿出来复习。算法这里就不单独写博客了。希望能早日成为大佬

2021-03-24 09:15:07 99

原创 工作笔记——python如何向redis中存储hash

问题截至文章发布,python中redis的依赖已经升级到3.5.3。而我是第一次使用python连接redis。业务需要我将一个dict存入redis,在连接到redis后,我尝试直接存入字典类型。报错。从这里开始解决问题。redis.exceptions.DataError: Invalid input of type: 'dict'. Convert to a bytes, string, int or float first.意思参数不符合规则,这里参数只接受a bytes, string

2021-03-18 15:18:56 1235 1

原创 工作随笔——python logging打印时间毫秒级方式

ch = logging.StreamHandler() ch.setLevel(logging.INFO) logger = logging.getLogger() formatter = logging.Formatter('%(asctime)s.%(msecs)03d-%(name)s-%(filename)s-[line:%(lineno)d]' '-%(levelname)s-[日志信息]: ...

2021-03-08 10:42:38 2431 1

原创 学习笔记——江南一点雨微服务视频第6章学习心得

OpenFeign在之前的几章组件间相互访问都是手动调用RestTemplate,虽然这已经帮我们免除了一些写重复代码的工作。但是调用RestTemplate的过程也是高度模式化的。openFeign帮我们又帮我们解决了这个问题。只需要定义一个接口就可以省掉之前重复的工作,类比之前的工具。像是mybatis中的mapper接口。使用接口提供关键信息,然后调用工具,使用反向代理做模式化的工作。@FeignClient("provider")public interface HelloService {

2021-03-08 10:38:51 163

原创 学习笔记——江南一点雨微服务视频5章学习心得

Hystrix1、简单了解当我看完视频,去自己写demo的时候,spring boot版本为2.4.3。其实在spring boot的2.4.0之后的版本就不再支持Hystrix。但还是简单的看一下吧。hystrix叫做断路器。因为微服务系统中由很多个模块组成,每一个模块出问题都有可能导致整个系统出错。所以出现了断路器来保证,某个模块出问题时有备用的方案,不至于影响整个系统。在首选方案出错时,变为备选方案的过程叫做==“服务降级”==。一般备用方案的结果更易于获得,但是数据的准确性可能会有延迟(缓存

2021-03-05 15:42:06 154

原创 工作笔记——解决You are using GPU version Paddle, but your CUDA device is not set properly.

一、问题先说问题,我需要配置百度的EasyDL本地gpu通用SDK需要调用paddlepaddle-gpu。在我配置好cuda-9.2以及cudnn7的环境后,安装默认的paddlepaddle-gpu(版本2.0.0),引入paddlepaddle-gpu后,报错。Cuda error(35), CUDA driver version is insufficient for CUDA runtime version二、解决如果你是出现跟我类似的问题,可以按照下面的顺序去排查。1、确认cuda以

2021-03-05 11:43:13 11919

原创 学习笔记——江南一点雨微服务视频4章学习心得

一、Consul今天看了consul的视频,consul跟eureka一样都是注册中心。使用的方式也是大同小异。不同的是,consul由于是GO语言编写,所以不是完全整合在spring cloud中,需要额外运行管理端。正因为如此,consul有很多个版本,教程里的版本相对较低,为了与教程保持一致,我也下载了同样的版本。但是spring cloud我使用了最新版,所以出现了奇怪的问题。我把spring cloud版本调低之后,问题就解决了。但是我查阅了spring could的文档也没有相应版本对照表。

2021-03-04 16:01:35 218 1

原创 学习笔记——一点maven项目结构的问题

首先要明白的是,项目的目录结构完全不影响maven的项目结构。maven项目结构比较重要的两个标签parent&modules首先是单体应用常用的聚合工程。所谓聚合项目就是将整个项目分为多个模块,每个模块是一个单独的功能,但是无法脱离项目运行。项目结构一般是<!-- 根节点文件 --> <parent> <groupId>org.springframework.boot</groupId> <arti

2021-03-04 09:35:34 141 1

原创 学习笔记——江南一点雨微服务视频2、3章学习心得

一、简单理解其实微服务本身并不复杂,就我学习几天的理解,微服务最大的作用还是解耦。将大的应用分解为若干个互不干扰的模块。每个模块都可以独立运行和部署。既然模块都可以独立部署,那么每一个模块就都可以看作一个单体应用,也称为一个微服务。那么传统的单体应用后台能做什么,那一个微服务同样也可以,比如分布式部署。刚刚说微服务本身不复杂,其中肯定有复杂的部分。比如数据同步之类的。。(我还没学到,之后再补充)二、注册中心与服务注册注册中心本身也是一个微服务,只不过它的职责相对特殊。在微服务的应用中,所有的服务

2021-03-02 10:36:38 593

原创 工作笔记——解决is not a supported wheel on this platform问题

一、问题想将EasyDL-SDK本地部署,将包下载下来后一共给了三个whl包当我安装任意一个包的时候,出现了的报错XXX is not a supported wheel on this platform二、解决其实这三个包提供的是相同的内容,只是为了配合pip的版本。查看当前pip版本适配的文件,然后选择当前pip支持的文件安装就可以了。输入pip debug --verbose后,会输出当前pip支持的文件名后缀,对比一下就知道安装哪个了。如果依赖包很老,也可以试试使用pip3

2021-03-01 14:38:39 1410

原创 学习笔记——初识Eureka

〇、前言本文章主要来自于江南一点雨的教学视频笔记,同时会添加部分自己的理解。一、注册中心Eureka是spring cloud中的注册中心,那什么是注册中心,又为什么需要注册中心。我们都知道,随着项目的体量越来越大,最好将整个应用拆分为不同的模块进行分工开发。同时各个模块根据需求提供相应的接口给其他模块调用。如果使用传统的调用方式,那么将会造成模块间的强耦合。例如A模块需要调用B,那么势必要在A中填写B模块接口的调用地址。如果B模块的部署方式或位置发生改变,那么A中的地址也要进行相应的改变。注册中

2021-03-01 14:24:33 72

原创 学习随笔——虚拟机安装redis出现的小问题解决

一、前言之前使用redis都是在本机安装,本机使用。这次在虚拟机安装redis并连接成功,踩了一些之前没踩过的坑,特此记录一下。二、redis的保护模式报错信息Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connec

2021-01-15 11:00:58 358

原创 工作随笔——tmux初体验

一、随笔最近第一次接触到tmux这个东西。按照我目前的理解,这个东西就是一个窗口工具。可以在命令行页面开启多个窗口。像这样分为两个窗口。这两个窗口相当于两个独立的会话,并且会话的状态是实时保存的。并非像远程连接服务器,在远程连接的窗口前台运行一个进程,当连接断开后,进程也就终止了。二、如何使用组合键要想使用tmux的组合键,前提是要进入任意一个已有的窗口内,或者新建一个窗口。如果想使用其中的组合键,比如要调出所有的窗口。需要按下前置键CTRL+b,按下前置键后再按下s,此时就可以调出所有的窗口。

2021-01-15 10:30:24 102

原创 学习笔记——Jupyter Notebook的安装

一、简单了解最近工作需要频繁的接触和使用python,而我又是一个python小白。这个工具是同事推荐编写和调试python的一个工具。据我目前了解,大致功能就是可以分段编写和调试python代码,比较方便。这篇文章主要记录安装过程。二、安装过程1、找到官网官方网址添加链接描述到了安装页面,看到它推荐的安装方式是使用conda安装,那就听官方的建议,使用这种方式安装。2、安装conda使用如下命令安装conda python -m pip install module conda缺少依

2021-01-15 10:14:57 193 1

原创 学习笔记——Python open()函数详解

open()函数想要在面向对象语言中操作文件,首先得先把文件读到内存中,并且以对象的形式体现到程序中。具体到Python语言中,就是使用open()函数。Ctrl+左键进入源码,看看详细的信息。对于这个方法,每个参数python都给了非常详细的注释。def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True):注释的第一句就说明了这个方法的作用,打开文件并返回一个文

2020-12-30 11:14:40 1359 2

原创 学习笔记—— Python中的 if __name__ == ‘__main__‘:

在每个Python的模块中都有一个__name__的属性,当此模块作为主模块运行时这个模块的__name__属性就是main,如果被其他模块导入运行时,属性就是模块的名称。写一段代码测试一下。print("__name__:"+__name__)if __name__ == '__main__': print("我自己运行了")else: print("别人引入我了")运行一下这个模块,控制台输出如下当模块被其他模块导入时总结:其实就是利用了__name__属性的特性做

2020-12-30 09:03:07 99 1

原创 学习笔记——Python函数

一、前言最近因为工作需要,要开始接触Python。之前完全没了解过,但是相信在Java的自学基础上去学习Python应该不会太过费劲。所以本编笔记可能会较多的做Java与Python两个语言的类比。二、代码块Python用缩进代表代码块,而不是像大多数语言一样使用花括号。但是要说非常不适应也不至于,因为至少还有编写yaml文件的经验,哈哈。对用这种特色,还是使用IDE来编码比较好,可以一键格式化,省心一点。三、函数1、参数传递在Python里定义一个函数,需要使用def关键字。下面定义一个最简单

2020-12-29 15:27:41 145 1

原创 工作笔记——Python环境下安装module

python -m pip install module名称

2020-12-26 08:37:13 199

原创 工作笔记——连接未批恩后无法访问内网资源(win10)

一、问题在成功创建VPN连接后无法访问内网资源IP无法ping通二、解决选中这个选项后,重新建立VPN连接即可。

2020-12-25 11:38:28 79

原创 他山之石——RuoYi后台系统权限管理解析(RuoYi版本:v3.2.0)

一、前言最近在学习spring security,自己也了些小的demo。也看了几个优秀的后台管理的开源项目。今天聊一下若依系统的权限管理的详细流程。二、权限管理模型若依使用的也是当前最流行的RBAC模型。如果不了解RBAC的小伙伴可以去网上查一下,其实很好理解。若依这里大致可以认为是实现了RBAC0。简单来说,就是用户不直接拥有权限,而是添加角色作为中转,将权限赋予角色。然后再将角色赋予用户。权限可以是菜单权限或者是按钮权限等。三、主要技术栈1、后端Springboot,SpringSecur

2020-12-04 13:39:22 6878 3

原创 工作笔记——Springboot非web项目保持运行

现在负责的项目是一个数据转发的程序,无页面。也就没必要使用Tomcat,不然还会占用一个端口。但是项目长时间未接收到数据后就进入了不活跃的状态,现在要保持项目的活跃。可以使用如下方法在配置文件中配置Spring Boot 2.0.0 以上的版本: spring.main.web-application-type=NONESpring Boot 2.0.0 之前的版本: spring.main.web-environment=false...

2020-12-02 13:46:51 964

转载 docker基础容器中bash: vi: command not found问题解决

问题我们在创建基础容器之后,进入容器,进行编辑配置文件的时候,需要使用vim或者vi命令,但是会出现:是因为系统中未安装 vi命令使用如下命令安装即可apt-get updateapt-get install vim

2020-12-02 10:21:53 419

原创 他山之石——vue-element-admin后台系统动态左边栏理解

一、前言最近在自己瞎搞后台系统,自己也简单的搞了一个简陋的后台框架。大家都说不要重复造轮子,所以我在简单了解了原理之后,在GitHub上找到了后台用的最多的前端项目vue-element-admin,所谓他山之石,可以攻玉。二、基本分析先简单分析一下,如何实现动态左边栏。其实想要动态渲染菜单,肯定离不开后端的支持。所以现在可以确定的是,后端给前端一个菜单数据,数据里面有啥,前端就渲染啥。再说前端,在搞动态之前肯定要了解静态的怎么做。在刚开始学习vue的时候,就简单接触过vue的路由router,在

2020-11-30 15:55:20 435

原创 Vuex入门(2)——state,mapState,...mapState

一、前言上一篇文章简单介绍了一下Vuex,也简单用了一下,接着还是按照官方文档的顺序搞。二、state其实state在上一篇文章就简单接触过了。state就是在store(仓库)存放公用状态的地方。存储在 Vuex 中的数据和 Vue 实例中的 data 遵循相同的规则,Vuex 的状态存储是响应式的,从 store 实例中读取状态最简单的方法就是在计算属性 (opens new window)中返回某个状态。简单点说,建议使用计算属性接收状态。computed: { p

2020-11-26 10:16:55 509

原创 Vuex入门(1)——Vuex简单使用

一、前言前几天想看一下Vuex的内容。网上都推荐去先看一遍Vuex的官方文档。OK,官方文档启动!然后。。。呃。。行吧。ES6学习文档启动!然后。。。考虑到自己就没怎么写过js,还是把js再过一遍吧。JavaScript学习文档启动!就这样又把JavaScript基本的东西又过了一遍。然后又看了一点ES6相关的东西(箭头函数,块级作用域,对象展开运算符),这些新东西跟java中蛮相似,所以就没单独转文章。不管怎么说,终于算是进入到Vuex的正题了,可喜可贺。二、Vuex是什么?简单来说,

2020-11-26 08:50:56 107 1

空空如也

空空如也

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

TA关注的人

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