自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Elltor

此博客不再更新,请转向个人博客 https://elltor.com

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

原创 开源|用 Java 实现一个生成 Markdown 文本的工具

公司的 IM 每天有许多机器人推送的消息,我也在使用,这个功能是好的,但是当我们想去发送一些格式优美的消息时,却要费许多功夫,主要来源于字符串拼接,如果要拼接出 `Markdown` 格式的那就更费力了,另外由拼接带来的是混乱的代码,为了解决这个痛点,我写了一个 Java 代码生成 Markdown 文本的工具,还给它起了一个酷名字。MdKiller —— Markdown 杀手 🥷。MdKiller 是一个格式化生成 Markdown 文本的工具,支持常用 Markdown 格式生成,例如引用

2022-11-26 18:22:14 3171 1

原创 批量获取力扣做题量工具

这是一个批量统计国内版LeetCode做题量的工具,写这个小工具的起因是我们实验室准备每周统计大家leetcode的做题量,我们实验室十几个人,如果一人一个人看,太费时间了,作为高效程序员这不是我们做事的风格,于此就有了这个小工具。对于平常的事务我一贯对待的风格是:能规范化的尽量使其流程化,能流程化的尽量使其自动化。追逐效率工具能解放我们更多的时间。

2022-01-09 23:20:07 8904

原创 Spring Boot启动时自动执行方法

有时启动springboot项目后需要执行一些方法初始化,如资源加载、数据准备等,首先不能放在main方法中SpringApplication.run()之前,因为此时bean还未初始化,除非你不使用bean,当然也不能放其后,因为run方法执行后启动tomcat会阻塞在端口监听,run方法后的代码不会执行。

2021-11-22 23:21:30 1271

原创 Netty技术分享

这是在项目组的第三次分享,学习了自己比较感兴趣的网络编程,收获颇丰,与各位一同分享。

2021-11-18 23:46:34 340

原创 记一次前端技术分享

这是在团队的第二次分享,第一次分享的是加密技术,这次分享些前端知识,即使做为后端开发工程师也应该了解些前端知识。

2021-11-18 23:37:18 2496

原创 网络常见名词杂烩

这篇文章总结了网络编程常见名词汇总,是博主自己的理解,如果和你的有出入,一切以你为准,博主欢迎交流。BIO、NIO、AIO这三个名词是网络编程中编程方式对名词,代表的是不同网络编程思想。BIO 是阻塞IO,也就是在内核读取数据阻塞用户线程,用户线程从内核态拷贝数据也会阻塞线程。对于这种编程方式,相当于所有读写操作都做了串行化。NIO是非阻塞IO,当执行IO函数时用户线程不必等待内核态加载数据。AIO时异步IO,用户态程序执行IO函数,当用户接收到读写完成的通知,它就可以用数据来,注意此时没有内核态

2021-11-18 23:35:03 395

原创 开源|操作日志工具

摘要:业务系统中难免要记录敏感操作,可以通过硬编码或者简单注解实现,但是都不够优雅,今天分享一个自己写的日志工具。

2021-11-18 23:32:55 688

原创 Mac OS批量文件编码转换(eg. GBK to UTF-8)

本来想查看win电脑上的一些源码,奈何在Mac上都乱码了,于是网上搜集了一些解决办法,网上多数都是针对**单文件**的,而我的源码文件是比较多的,因此写了个脚本进行批量处理,我先介绍单文件编码转换方法,最后放上批量转换的脚步。

2021-09-20 20:35:01 2296

原创 数据权限问题的几种处理和思考

背景在权限管理中一般分为两类:操作权限、数据权限操作权限:是用户是否能使用某个功能的接口权限。数据权限:是用户是否能操作某个范围的数据,例如:订单记录修改接口,“用户”只能修改所属的(用户A不能修改用户B的订单记录),“admin”可修改所有的。现有权限管理一般是基于RBAC(Role-Based Access Control)模型,都只能解决操作权限的控制,即使粒度再小(如把订单权限划分为增、删、改、查权限)也不能解决数据权限的问题。操作权限与数据权限的关系,下面是个例子:admin和张三(

2021-08-26 00:20:16 3395

原创 数据库篇:MySQL explain

为了知道SQL的效率执行的怎么样,经常使用 explain 查看SQL的具体执行过程,以加快SQL的执行效率。explain 提供了很多SQL执行信息,如查询类型,使用索引的情况,查询的结果数,可以很好的帮助我们优化SQL。

2021-06-24 11:35:14 134

原创 Linux磁盘挂载卸载

磁盘挂载以下是简单在一个目录挂载一个磁盘。# 找打挂在磁盘ls -l /dev/sd*# 对新挂在的磁盘sdb进行格式化(磁盘使用前必须经过格式化)mkfs.xfs /dev/sdb# 查看可挂载的磁盘blkid/dev/sda1: UUID="308c9c6c-857f-4f06-add9-f9447eb4ff50" TYPE="xfs" /dev/sda2: UUID="92c11117-e904-4242-8f4b-54e00fda30ad" TYPE="swap" /dev

2021-06-19 09:40:00 158

原创 Linux使用SSH相互认证授权

实现方式,在一台Linux服务器中生成一对SSH公私钥,保证所有Linux节点都持有相同的一对密钥,这样就保证了认证方式相同。相互认证步骤如下:在其中一台服务器创建密钥对进入家目录的 .ssh 文件夹,并将 id_rsa.put 重命名为 authorized_keys报家目录下 .ssh 文件夹通过scp命令传输到另外的服务器上最后通过ssh命令连接各个服务器进行测试以下是对三台主机相互认证的操作,10.0.0.10是生成密钥的主机,其他主机(10.0.0.20、10.0.0.30)是接受

2021-06-16 19:05:02 732

原创 数据库篇:开篇词

之前使用数据库已经有段时间了,最先接触的是MySQL,当时写了个管理系统,使我养成了对编程的兴趣,在当时更侧重于实践,也就是把MySQL用好,现在想了下当时也可能没有用好,因为MySQL有很多优化的理论和哲学当时没有接触到。最近准备深入学习了一下,这篇文章是这个系列的第一篇,先简单聊下数据库。数据库的是用来做什么的数据库是用来做什么的?这是个无意义的话题,大家都知道数据库是用来存储数据的,可以存储文本、数值、音视频等文件,使用数据库以格式化的存取和规范化的获取给我们的使用带来了极大的便利,但是在数据库没

2021-06-16 10:59:23 228

原创 Nginx负载均衡实践

首发个人博客:https://www.elltor.com/archives/116.htmlNginx是一个高性能的静态资源、反向代理服务器,现在越来越多的互联网公司使用Nginx托管网站,还有一个出名的静态资源服务——Apache,在Nginx没有出现之前Apache用的人很多,之后后者功能及性能更加优秀就被越来越多的人选择了。Nginx相较于Apache在具有反向代理的功能,同时在IO方面性能卓越。两者的详细区别可以参考以下两篇博客:https://www.cnblogs.com/chan.

2021-06-16 10:56:05 402

原创 深入理解Java多线程(四)锁、锁工具、并发容器

JUC提供了一套锁对象,分别是:Lock接口、AbstractQueuedSynchronizaer(队列同步器)、ReentrantLock、ReentrantReadWriteLock、Condition、LockSupport。个人博客:https://www.elltor.com/archives/112.html欢迎访问,相互学习,共同进步????文章目录Lock接口AbstractQueuedSynchronizaer 同步器使用AQS使用AQS实现非重入互斥锁ReentrantLoc

2021-06-01 22:28:01 210 4

原创 深入理解Java多线程(三)JUC基础篇

这篇文章主要侧重讲JUC的多数类的使用,文章里贴了很多练习的代码,可以通过代码更加深刻的了解这些类的功能。这篇文章主要总结了volatile、原子类、ReentrantLock、CountDownLatch、CyclicBarrier、Phaser、Semphore、Exchanger的使用,然后进行了一些对比。个人博客:https://www.elltor.com/archives/110.html欢迎访问,相互学习,共同进步????文章目录volatilevolatile使用volatile

2021-06-01 22:23:57 282 1

原创 深入理解Java多线程(二):多线程问题总结

学了一段时间多线程方面的知识了总感觉掌握的知识有些散乱,在网上搜了一些面试问题总结梳理一下,通过问题来促进和检测学习是一种很好的方式。多线程java中有几种方法可以实现一个线程?Java中有四种方式实现一个线程。通过实现一个Runnable继承Thread并重写run方法继承Callable,用Future接收可以实现异步调用使用线程池(executer)提交作业如何停止一个正在运行的线程?使用suspend可以挂起一个线程,使用stop可以终结一个线程,但这些方法已经不推荐使用,存在

2021-06-01 22:20:24 297

原创 深入理解Java多线程(一):多线程基础

文章目录Java 线程的实现线程的创建线程状态线程状态获取示例线程的优先级守护线程原子性 & 同步synchronizedsynchronized的使用示例JDK6对synchronized的优化锁升级过程锁的对比CPU常见术语volitailThreadLocal我的个人博客:https://www.elltor.com/archives/107.html欢迎访问,相互学习,共同进步????Java 线程的实现Java 线程在 JDK1.2之前,是基于称为“绿色线程”的用户线程实现的,

2021-06-01 22:17:40 272 1

原创 Linux安装nodejs环境(提供脚本安装)

下载nodejs这里使用wget下载12版本LTS的,其它版本把链接换下即可。wget wget https://npm.taobao.org/mirrors/node/latest-v12.x/node-v12.15.0-linux-x64.tar.gz解压并配置环境变量# 解压tar -xvf node-v12.15.0-linux-x64.tar.gz# 重命名文件夹mv node-v12.15.0-linux-x64 nodejs配置环境变量。把当前目录下的nodejs/bin

2021-05-27 12:09:08 1207

原创 深入理解Java集合框架

Java集合实现了常用数据结构,是开发中最常用的功能之一。Java集合主要的功能由三个接口:List、Set、Queue以及Collection组成。常见接口:List : 列表,顺序存储,可重复Set :集合,与数学中的集合有同样的特性:元素不能重复Queue:队列Collection:所有Java集合的接口,定义了“集合”的常用接口结构结构常用集合ArrayList 一种可以动态增长或缩减的索引集合,底层通过Ojbect[]数组实现,默认容量为10,在使用是如果确定仓储的数据容

2021-05-26 16:57:13 164

原创 【Apache POI】设置单元格字体、颜色、边框、对齐方式、Excel读取导入、解析工具类

这个工具类来源于我们项目的实践,简化了一些重复性的工作,欢迎尝试,欢迎提出问题。工具类提供了设置单元格的基本背景颜色、字体、字号、字体颜色、边框等,还实现了导入导出、磁盘读写Excel。

2021-04-18 13:06:58 3802 11

原创 Controller中使用swagger注解的正确姿势

在使用swagger的时候有些注解没有正确使用会导致测试时不方便,导致测试时连数据都传入不到后端,或者swagger界面的接口显示了错误的输入组件,这些都是swagger的Comtroller注解使用的一些细节没有注意到,这篇文章主要针对这方面的注解进行总结,或许能解决使用swagger的一些小诟病。在Controller中常用的注解有:@Api 用它标识的Controller称为一个模块tag:标识模块名称@ApiOperation 标识一个接口,会呈现在一个模块下vlue: 标识

2021-04-05 10:23:54 7732 4

原创 【Spring】@Autowired、@Resource、@RequiredArgsConstructor 的使用、区别、最佳实践

Spring 的核心是Ioc容器和DI(Dependence Injection)思想,这些提供了 java 对象的管理以及他们之间依赖的管理。bean 的管理是Spring自动管理的,而我们只需要使用一些注解(Annotion)。常用的是 @Resource 和 @Autowired 以及 lambok 的构造器进行注入。使用注入前对象必须由 Spring 管理。通过 @Component、@Service、@Repository 标识,Springboot会自动扫描并初始化 Bean。@Auto

2021-03-21 15:25:11 4341 1

原创 什么是RSS

关于RSS,可能有很多人和我有一样的疑惑,见的很多却不知到它是什么,也不知道它的作用。我也属于好奇心比较强的人,经过一番搜索,解开了脑海中关于RSS的迷惑,觉得很有趣和实用。

2021-03-15 11:08:44 617

原创 RESTful API 设计实践

RESTful是目前流行的API设计规范,遵守这套规范设计出的API可以较好的适用不同类型的客户端,例如:PC/Mobile/Pad…RESTful 表现层状态转换(英语:Representational State Transfer,缩写:REST)是Roy Thomas Fielding博士于2000年在他的博士论文[1]中提出来的一种万维网软件架构风格,目的是便于不同软件/程序在网络(例如互联网)中互相传递信息。RESTFul 使用的协议API内容的传输总是基于HTTP协议。在线上产品通常使用

2021-03-05 14:42:39 162

原创 将idea的Terminal改造为Git Bash

为了在每次使用Git时不打开GIt Bash窗口,可以对idea的Terminal进行改造,这样使用就方便许多了。不对idea Terminal改造也可以使用Git,但终端是Windows的CMD,对于一个习惯使用Linux总有些别扭。改造后idea的终端运行的是Git的Shell,可以使用Linux的常用命令,同时Git的操作输出也有色彩,开发体验直接起飞。

2021-03-04 09:34:46 477 1

原创 操作系统|操作系统概念、进程、线程、死锁

只有问题版-点击1、操作系统是什么?操作系统具有什么特征?操作系统是操作硬件的一组软件集合。操作系统位于硬件之上的第一层,它屏蔽硬件操作的复杂性并想高层提供抽象服务。它的作用是管理计算机资源(处理机、存储设备、IO设备),使它们高效运转,这些管理体现在处理机调度、内外管理、文件管理、IO管理、网络管理。同时操作系统也提供一个让用户与系统交互的操作界面。操作系统的特征共享性多进程程并发势必争夺处理机资源,处理机成功共享资源计算机中的一个资源能被多个进程使用,使用时需要同步保证每次只有一个进

2021-01-23 09:02:19 216

原创 docker常见名词及其关系

第一次学习 docker 会有几个概念使人迷惑,今天总结一下他们之间的关系。他们之间的关系:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CCGVPk3n-1611154810554)(https://oss.elltor.com/uploads/2020/image_1611025867645.png)]先理清楚几个概念仓库:通常只 docker hub,是 docker 的中央仓库,当然我们也可以自建仓库。Dockerfile:构建容器镜像的配置文件,可以把它理

2021-01-20 23:00:25 213

原创 Dockerfile 学习笔记

DockerfileDockerfile 的作用是用来构建 docker 镜像(image),使用 Dockerfile 我们可以构建出更符合自己需要的镜像,而编写好的 Dockerfile 我们可以多次使用。Dockerfile 中的保留字Dockerfile 中的保留字在使用时全部需要大写,保留字不能再作为属性的值使用。FROM:指定当前镜像是基于哪个镜像来构建的RUN:构建镜像是需要运行的指令EXPOSE:当前容器对外暴露的端口WORKDIR:指定容器创建后,终端默认的进入的路径(PA

2021-01-19 14:49:06 133

原创 记一次分享:后端常见名词及其注意事项

一、Tokentoken是什么?token是服务端生成的一个标识客户端的字符串,具有唯一性,作为访问服务端的凭证。特殊的 Token(如JWT)可以携带信息。为什么要用 Token?为了解决HTTP无状态的问题无状态指每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况。反之有状态就是请求之间可以建立关系,服务端能够区分请求是谁发送的请求。为了使之有状态HTTP加入了 Cookie 和 Sessio

2021-01-11 16:35:58 375

原创 项目开发流程图v2

这是我在做过项目负责人之后,对整个项目流程的梳理,有很多项目开发的最佳实践,里面还列举了许多注意事项。局部截图不足&改进这次画的流程图很多是站在项目负责的角度来的,描述的是项目负责人应重视的环节和工作,对成员应做和重视的稍有忽略。另外负责人和成员应做的事未分开罗列,这个问题会在v3.0改进。流程图下载地址:点击下载文章同步更新到我的个人博客:https://elltor.com/...

2021-01-09 22:31:17 321

原创 shell编程基础总结

shell是一种特殊功能的程序,它介于用户和unix/linux操作系统内核程序(kernel)之间的一个接口. 通过SSH服务连接到shell就可进行远程操作了。shell中的变量用户自定义变量, 用户在bash窗口或者shell脚本中临时定义的变量位置变量, $0,$1,$2…用来获取传入参数及程序名称($0)预定义变量(系统变量), $#,$*,$@,$?,$$,$!这些变量只能使用不能修改环境变量, 系统中默认存在的变量如:$PWD, $PATH, 可以通过export导出, 导出的变量

2021-01-09 22:14:08 343

原创 一句话引发的感想

有一天上机课实验课,网络老师大家做的实验时说两句:每个人都是有差异的,有些人的表现跟我在上理论课看到的不一样。之后他又补了两句,说在他学习的时代,在学校的几乎都是学习好的,学习好的学生理论和实践都能做好,但差的几乎是都做不好,而大家又的理论学的不好的实验做的还不错。在我们的实验课上确实有部分人实验做的比那些“尖子生”好的。这次我对这句话有了更深的理解:每个人都是有差异的。现在人们的生活过的越来越好,人们有了更多的选择,做自己喜欢的选择,所以现在的人们都是个性化的与差异化的。社会在进步,人也在进步,我相信

2021-01-06 19:09:03 123

原创 程序的本质是什么

昨天中午在B站刷到一个视频,视频中讲的使这个程序员十年多来编程体会,讨论的主题正是这篇文章的标题,这篇文章也是因看这个视频颇有体会而写的。视频作者不是大V,讲的很朴实,感兴趣可以看看,视频链如下:https://www.bilibili.com/video/BV1J54y1t7WA下面是视频内容的总结,除了视频中的我也会在最后加入我的观点。在这个视频中作者主要讨论的主题是:程序的本质是什么?在硬件角度程序是建立在硬件上的,程序利用操作系统提供的API实现一系列的功能,实现对硬件设施的控制,最终为

2021-01-06 19:04:07 2214 4

原创 生活随笔——简单和复杂

最近学校实习,实习时长是两周,两周后直接考试,所以这两天赶快把实习作品做出来,然后进入期末复习状态。聊聊这次校内实习这次来给我实习的是中公教育的,教的许多是过时了的技术,讲的东西自己都学过了,确实没什么学的,不过老师说的开发中的技巧还是值得听一听的。我们已经学过SpringBoot,教的是SSM配合jsp页面实现一个RBAC(Role Base Access Control)的OA系统,现在,我们不得不使用SpringBoot配合jsp页面来实现(SpringBoot对jsp兼容并不好),为什么要使用j

2020-12-18 22:16:36 141 1

原创 对我校教师账户实现CAS的改造探索

业务系统的增多导致用户信息、用户登录不便于统一管理, 基于此我们开始对单点登录SSO和统一身份认证服务CAS进行探索. 当前我们的科研管理系统已经开发的差不多了,由于每次开发学校的项目都需要导入教师信息,多个系统就造成了用户数据难统一管理,多个系统之间的用户账号密码难管理,于是这几天我们在科研系统开发基础上提出了第二方案,使用统一身份认证服务CAS对我校教师账户信息进行管理。说实话,我们可以系统已经开发近九成,系统业务早已成型,如果实行这个方案需要对后端进行一部分重构。后端是基于eladmin简化过的框架

2020-12-06 11:51:57 176

原创 项目测试突发事件的思考

近期项目开发脚步放缓,做的最多的是页面修改和一些小功能的优化,另外就是把项目部署到学校服务器上。今晚腾飞和小桑学长在科研系统服务器上进行测试,发现了一些问题,使测试并未顺利进行,这可能与近期导入用户数据的原因相关,之后就到测试服务器测试,因为上面代码已经好几天没更新,项目的配置和细节之处的调整也随着新环境发生了变动,这就导致再次部署到测试服务器项目出现无法访问登录问题。随后学长就批了我一顿,做为项目负责人我无法反驳,我责任最大我最应该反思,从这次事件中也暴露出了我们目前开发存在的问题:开发混乱、测试部署不规

2020-12-06 11:42:22 270

原创 近期项目感受

之前和世伟、星星一起参与了平安科院项目,这个项目算是比较顺利的。我是负责写项目后台的,项目的管理工作及部署不需要我做(一般是负责人来做),而我只需关注后台的功能和任务完成就可以了。现在由我带领十几个人共同开发学校的科研管理系统,第一次带着大家做项目有时候会觉得不知该做什么,但还好身边有机会接触到很多项目开发的机会,在我刚开始做项目的时候腾飞学长亲口告诉我了许多做项目负责人的注意事项,在项目过程中小桑学长也帮助我管理项目给我说一些注意事项。在这次学校的科研管理系统的管理中,有许多值得总结和反思的地方,和成

2020-11-27 13:13:15 231

原创 科研管理系统总结

截止到昨天晚上十点多我们的项目主要功能的开发算法完成, 占整个项目的80%, 后期需要确定科研管理系统教师数据的导入方式, 待老师测试通过后部署算是整个项目的结束. 在这次项目中我是担任整个团队的负责人, 并未过多的参与到编码中, 这次开发整体来说还是比较顺利的, 没有遇到特别难的技术点和业务逻辑. 我之前从未担任过项目项目负责人, 这次算是过了把瘾吧. 在我担任负责人的这段时间我并未觉得比在开发中轻松, 在开发中我主要关注的是自己的业务和技术点, 而站在项目负责人的角度则要对整个项目进行把控, 而不仅仅是

2020-11-27 13:08:28 669

原创 Git协作流程

git在多人协作开发中是必不可少的,好处就不多说了。Github flowgithub flew是项目开发合作中用的比较多的git协作流程,已经被许多开发者接受,目前我们正在使用的也是这个git开发流程。GitHub flowCreate a branch from the repository.Create, edit, rename, move, or delete files.Send a pull request from your branch with your proposed

2020-11-12 14:15:10 206

空空如也

空空如也

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

TA关注的人

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