自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一名假人的博客

大学萌新 我会以一个新手的思想来处理问题 欢迎大家指正错误

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

原创 Gin HandlersChain 调用解析

Gin HandlersChain 调用解析前言一、HandlersChain 是什么?二、调用方式三、源码模拟四、总结前言  Gin 可以说是Golang WEB应用比较广泛框架,在博主使用时一直对其内部中间件和Group handle的调用比较好奇,这次仅从FuncHandle的调用做一次解析。一、HandlersChain 是什么?在gin的context.go文件中存在下述定义type Context struct { // ... 忽略上面 handlers

2022-04-21 14:49:26 723

原创 Log4j2漏洞复现

Log4j2漏洞复现一、前言最近Log4j2的漏洞算是刷屏了。博主也就跟风学习了一下,虽不说开发能力有啥提升,但是也算是学了点知识吧。这次就分享一下Log4j2漏洞的复现场景,以供大家参考。二、参考文章Apache Log4j2远程代码执行漏洞本文的示例也都是按照这里面敲的,文章还有很多大佬评论大家可以多看看三、漏洞触发流程图这里使用LDAP服务进行演示解释:Web服务为受害者对象,LDAP和HTTP服务为攻击者对象。一句话概括:攻击者利用log4j2的JNDI技术发送恶意请求,使

2021-12-14 11:36:40 8330

原创 项目学习——简单工厂模式优化

项目学习——简单工厂模式优化一、前言最近接触了一个项目,在这个项目中有一个EventHandler的概念,用于解决KAFKA不同类型的数据。为了架构设计,开发成员在这里使用了工厂模式来处理这块请求。但是他通过引入spring的InitializingBean接口,解决了简单工厂中可能会出现大量的if-else的问题。二、简单工厂模式设计图在这个项目中有一个EventHandler基本的工厂模式架构图是这样的。本项目的EventHandler架构大致也是这样的。三、传统的简单工厂缺点通过上图

2021-11-16 10:39:56 754 2

原创 Centos7VM 部署 Apache atlas 2.1.0

Centos7VM 部署 Apache atlas 2.1.0一、环境部署centos 7python 2.7.5(centos自带)maven 3.8.2java zulu8.56.0.21-ca-jdk8.0.302-linux_x64atlas 2.1.0kafka 2.12-2.7.0hbase 2.0.2zookeeper Hbase2.0.2内置solr 7.5.0二、步骤准备一台干净的centos7的VM环境. 创建 /software 目录,并上传 ja

2021-11-16 10:29:09 1833

原创 Apache Atlas切换ES

Apache Atlas切换ES注意:本篇文章是根据《Atlas变更搜索引擎》写的,只是对内部可行的方案进行了补全,没有提供新的思路。如有需要可以亲自去看看官方文档和这篇博客。一、环境清单atlas 2.1.0环境。(基于《CentOS7搭建Atlas》文章进行搭建)ElasticSearch-6.8.4。Hbase2.3.3。(可以使用atlas搭建的时候hbase,但是需要删除和solr相关的数据表)二、步骤所有步骤在 /software 目录下进行1. 准备ES环境上传E

2021-11-16 10:07:57 2399

原创 Atlas 采集 HIVE过程搭建

Atlas 采集 HIVE过程搭建一、参照文章● http://atlas.apache.org/#/HookHive● https://www.cnblogs.com/xizhunet/p/14303932.html#271-%E9%85%8D%E7%BD%AEhive-hook二、环境清单● atlas-2.1.0( zookeeper, kafka)● hive-3.1.2三、安装步骤● 将atlas的conf的atlas-applicaiton.properties和该版本的apac

2021-11-16 09:56:32 620

原创 Redis学习 —— 分片Hash算法

Redis学习 —— 分片Hash算法文章目录Redis学习 —— 分片Hash算法一、前言一、问题复现,机器数取模HASH算法二、解决方案一致性Hash算法哈希槽算法三、总结一、前言  在现今的后端开发中,缓存中间的已经成为必不可少的一部分。但是作为中间件必然有其性能的瓶颈。而解决这一问题的解决的方式就是构建Redis集群水平扩展Redis。  那么如何保证Redis结点增删后依旧保持原KEY依然可以访问原有结点,就是一个绕不开的问题。一、问题复现,机器数取模HASH算法介绍  每

2021-07-18 15:43:46 720 1

原创 JAVA的JSON序列化和二进制序列化优缺点对比

JAVA的JSON序列化和二进制序列化一、前言  最近在一个项目中因为序列化不一致问题出现了项目的卡壳。问题出现在一个后端组员修改了一个后端共享序列化类,但是测试后没有及时提交这块代码,导致其他开发成员在发序列化对象时,出现了序列化异常。  但是在开发的时候也出现过修改bean,但是没有出现过序列化异常的问题。于是经过对比后发现出现异常的bean使用二进制序列化,无异常出现的bean使用json二进制序列化。  于是决定写一个粗劣的对比。但是推荐看看本文章的参考文章,可以学习到很多的二进制反序列化的

2021-05-03 12:19:50 2465

原创 HTTPS加密方式理论粗解

HTTPS加密方式理论粗解一、导论  HTTPS通信的方式在面试网络上是一个常见的热点问题。博主最近也在看《图解HTTP》这本书。发现这本书关于HTTPS的解释也是止于理论,打算总结一下HTTPS的理论基础。  如果有同学想更加深入学习,个人认为需要更加专业的书籍才可以。二、什么是HTTPS  HTTPS(HTTP Secure,超文本传输安全协议)。其为HTTP传输协议和SSL或TSL这两种支持安全加密的协议进行组合使用,可以加密HTTP的通信内容。三、HTTPS相比较HTTP的优点是什么(安

2021-04-25 17:36:26 119

原创 Nginx部署Npm打包的项目访问时F5刷新404

Nginx部署Npm打包的项目访问时F5刷新404文章目录Nginx部署Npm打包的项目访问时F5刷新404一、问题描述F5刷新之前F5刷新之后二、问题解决一、问题描述使用nginx访问打包由npm build的项目dist文件夹发现了一个问题。除此访问一个页面是没有问题的,但是F5刷新之后就出现了问题。F5刷新之前F5刷新之后二、问题解决后来寻找解决方法说是nginx的配置文件写错了。修改之前 location / { root /etc/nginx/h

2021-04-18 14:58:41 462

原创 关于volatile提供的可见性无法保证并发编程的思考

关于volatile提供的可见性无法保证并发编程的思考题主最近在准备面试,正好复习到了多线程编程的知识点。其中有关validate于并发上的使用引起了我的思考。一、介绍volatile1. 什么是volatile?  有关volatile的介绍网上有很多介绍,题主总结能力有限就引用一下百度上的描述:volatile是Java提供的一种轻量级的同步机制。Java 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量,相比于synchronized(synchronized通常

2021-04-11 15:25:41 298

原创 jar 无法访问resources的内部文件

jar包运行模式下无法访问resources的内部文件文章目录jar包运行模式下无法访问resources的内部文件一、前言二、问题描述解决三、问题解析缺点一、前言本次项目中,有一需求是读取 Resources的内部文件,但是在这个简单的需求缺在实际的生产环境上出现了问题。项目环境:Springboot二、问题描述描述,需要读取springboot项目中resources文件夹下面的一个文件,index.vue。代码为:try{ file = ResourceUtils.getFi

2021-04-04 15:03:24 565

原创 POST 请求实现任意的文件下载

JAVA配合POST请求实现任意的文件下载(含前端代码)一、前言在最近项目开发中,有一需求是根据请求参数构建文件后,下载下来。  在我研究文件下载方式中,发现大部分文件请求获取是以Get请求为主的。但这种情况大部分是文件已经存在,只需要直接获取即可。  因此本次记录一下依靠POST请求进行文件的下载和返回。二、代码前置工作JAVA:Springboot、SpringMVC、hutool。JS:vue、axios。文件:D盘任一文件,文中准备了一个zip文件。JAVA

2021-03-28 12:59:43 6715 3

原创 Springboot2整合Activiti7解决SpringAutoDeployment自动部署

Springboot2整合Activiti7解决SpringAutoDeployment自动部署一、前言环境介绍Springboot 2.1.0Activiti 7.1.0.M6二、问题描述在整合Springboot整合Activiti时候,发现每次重新启动项目的时候会发现在ACT_RE_DEPLOYMENT自动加上一个名为SpringAutoDeployment工作流记录。但是在开发阶段,需要经常进行重启项目,久而久之就会导致ACT_RE_DEPLOYMENT的记录越来越大了。三、

2021-03-21 14:08:35 5157 2

原创 docker里面的Nginx怎么监听宿主机的端口

Docker 里面的Nginx怎么监听宿主机的端口解决通过使用Host网络模式来启动Nginx原因  如果学了docker容器的网络模式,应该了解docker容器在启动时的一种模式为HOST。在这种模式下。该容器的网络ip和端口都是与宿主机保持一致。  这种情况下当docker_nginx监听某一个端口,那就不是监听容器的端口,而是宿主机的端口。  例如:当docker_nginx监听8000端口时,向宿主机8000端口访问就会被nginx进行捕获拦截。命令正确:docker run --

2021-03-14 14:07:14 3324 2

原创 Mybatis的Mapper接口方法无法重载

文章目录前言一、情景再现1. sql2. Mapper3. 测试类4.结果2.读入数据总结前言博主最近在基于[smpe](www.baidu.com)开源框架去写一个项目,但是因为数据库的表需要修改,一些mapper的sql也需要做修改。为了保证原有项目的可运行,就直接在mapper.class下进行了重载,但是结果却不对。一、情景再现提示:为了详细说明,本篇博客就快速创建简单的mapper和数据库表进行演示。1. sqlDROP TABLE IF EXISTS `role`;

2021-03-08 13:52:00 725

原创 centos7 安装docker

centos7 安装docker一、前言本篇博客其实是将docker官网的安装步骤办了过来。其中只涉及到了基本的安装方式和选项,如果想要看更多的docker安装的细节,可以看docker的文档官网。centos7安装docker环境介绍一个纯净的centos7环境二、步骤为了方便我接下来安装docker的步骤会在shell连接工具中执行。1. Uninstall Docker Engine(卸载原本存在的docker依赖)$ sudo yum remove docker \

2021-02-28 12:49:22 77

原创 docker快速部署画图工具draw-io

docker 快速部署画图工具draw-io一、draw.io #github地址draw-io是一款免费且开源画图软件,博主个人感觉它除了存储之外也没有什么其它的缺点。于是决定在自己的服务器上搭建一个draw-io,作为一个快速画图的工具。二、部署方案选择博主在看过官方文档和诸多博客后发现,如果只是快速搭建一个draw-io,而不做其他修改使用docker的方式是最快的。三、部署流程首先确定Linux的环境存在docker拉取镜像 docker pull fjudith/draw.i

2021-02-21 14:22:40 6281

原创 Activiti7 通过BpmnModel部署流程并启动实例

activiti7通过BpmnModel创建流程并启动实例activiti7通过BpmnModel创建流程并启动实例一、前言二、正文三、结尾一、前言博主在学习activit7中,涉及到有关bpmnModel来维护整个工作流的内容。其中最先要实现的功能是创建出BPMN流程图。对此在进行翻阅资料后,大致总结出以下一套模板。注意:1.本篇文章目前并不针对Activiti7提供的所有的BpmnModel.class进行解析。只涉及代码的编写流程。2.本篇文章默认读者已经搭建好了S

2021-02-15 23:56:19 2864 5

原创 Springboot2连接mongodb4注意事项

Springboot2连接mongodb4注意事项一、前言Springboot2连接mongodb4的时候博主遇到了点困难,现在博主讲连接步骤重新发出来,并且把易错的地方标注出来。二、正文第一步导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mo

2021-02-07 14:37:08 350 1

原创 如何编写一份清晰的技术实现方案文档

前言  这段时间博主再负责一个工作流项目的前期调研功能。由于是第一次从技术调研开始负责一个项目,在一开始有很多地方是不足的,并且是需要记录的。  其中一类比较重要的文档叫做技术方案。  这个文档与需求文档是不同的。  一般情况下,技术方案文档是指用于解决需求文档中某一具体的困难业务、复杂业务的代码实现从而设计文档。可以说是提前为项目代码的开发阶段提前进行铺路。模板见下图:结尾  大家如果要编写可以直接按照这种方式进行编写。但是无论以何种形式,文章结构简洁,描述易懂是一切文档编写的最基本

2021-01-29 16:24:22 1709

原创 IDEA报错:Error:java: JDK isn‘t specified for module ‘work-flow‘

Error:java: JDK isn’t specified for module ‘work-flow’文章目录Error:java: JDK isn't specified for module 'work-flow'一、问题描述二、问题原因三、问题解决一、问题描述在博主学习工作流的时候找了一套课程的对应代码,本来向打开运行的时候IDEA报了如下错误:java: JDK isn't specified for module 'work-flow'二、问题原因这个是因为,在项目拉取的时候将本

2021-01-22 20:32:14 660

原创 Springboot整合SpringSecurity之后出现跨域请求

Springboot整合SpringMVC之后出现跨域请求文章目录Springboot整合SpringMVC之后出现跨域请求一、问题描述二、问题原因三、问题解决一、问题描述本周博主在学习工作流时,临时搭建了一个Springboot整合的activiti框架,准备试一下和bpmn.js交互,但是却在跨域上出现了问题。但是在我整合好SpringSecurity之前,根据配置好的跨域配置类都是没有问题的,但是整合好之后就出现了问题。二、问题原因在查询SpringSecurity配置类的时候发现,Spr

2021-01-22 20:25:50 685 1

原创 Springboot——Aop失效原因之一

Springboot Aop失效原因之一文章目录Springboot Aop失效原因之一一、问题描述二、问题解决三、问题反省一、问题描述本周在学习时,被告知和朋友一起开发的SMPE框架中的AOP全部失效,导致通过自定义注解实现的拓展功能全部失效。从而开始排查原因。二、问题解决通过网上博客追踪,试过了补全依赖和设置@EnableTransactionManagement(proxyTargetClass = true)的方式,但都失效。最后在排查代码提交的时候,发现配置文件在联合开发的时候被修改了,

2021-01-22 20:14:26 1310

原创 CacheAble、CachePut、CacheEvict的注解底层逻辑解析

CacheAble、CachePut、CacheEvict的缓存更新策略目录一、前言二、@Cacheable @CachePut @CacheEvict 功能1. @Cacheable作用代码使用举例2. @CachePut作用代码使用举例3. @CacheEvict作用三、@Cacheable @CachePut @CacheEvict 底层处理方式1. Springboot-cache处理核心类 CacheAspectSupport.java2

2021-01-15 10:55:43 1177 1

原创 单片机C语言编程,从而了解int的坑~~

123

2021-01-10 10:27:57 695 1

原创 nginx安装错误:c compiler cc is not found

123

2021-01-03 15:03:55 2857 1

原创 Mybatis-plus解决selectOne查询多个会报错的问题

123

2020-12-27 15:37:35 20641 10

原创 org.xml.sax.SAXParseException; lineNumber: 1225; columnNumber: 40; 在 CDATA 节中找到无效的 XML 字符 (Uni

123

2020-12-20 13:55:33 541

原创 二进制妙用——实现权限控制(JAVA)

文章目录前言一、模拟环境及需求1. 开发环境2. 功能需求二、实现步骤1.创建实体2.编写逻辑3.编写测试环境4.代码结构总结前言本文章是对我之前一篇有关Linux操作系统通过二进制实现用户权限控制原理的java代码实现上扩充。一是为了巩固知识点,另一方面是想让那一篇的理论知识落到实处。项目源码会在文章中放出。注意:实现并不是完全按照Linux的模型进行实现,主要是让大家明白二进制的运算在本例的作用。一、模拟环境及需求1. 开发环境IDEA 2019.1.4JDK1.8mavenpom.

2020-12-13 11:40:20 628

原创 二进制的妙用——通过二进制解决权限控制(Linux)

二进制的妙用——通过二进制解决权限控制前言不知道小伙伴在学习Liunx的时候有没有见过如下的命令:chmod 755 file.txt这个命令的含义特别简单就是,这个文件按不同人原赋予对应的权限,7是指给创建人读写执行权限,第一个5是给创建人同组的人读和执行权限,第二个5是给其他用户读和执行权限。下面会给出一个数字的控制方式原理通过图片去解释是我很喜欢的方式,之后我会基于这个给出一个java实现权限控制的实现demo,里面涉及了大量的位运算,小伙伴们可以先自行学习原理。图示总操作

2020-12-06 10:30:06 779

原创 IEDA2019.1.4 鼠标放到方法上显示注解

12312

2020-11-29 14:05:22 526

原创 通过config文件管理git的ssh生成的密钥

通过config文件管理git的ssh生成的密钥在项目学习中代码管理是很重要但是令人很头疼的事情,但是还要我们有git这一强大的工具。但是随着工作、生活、学习身份的切换,我们可能会有github、gitee、gitlab等不同的ssh。那此时我们就可以通过.ssh文件夹去做统一管理。# ~/.ssh/github_rsa github的ssh密钥Host github.com HostName github.com User git IdentityFile ~/.ssh/g

2020-11-22 15:38:19 245

原创 nginx报错 [emerg] getpwnam(“nginx“) failed

123

2020-11-15 17:21:27 7176

原创 Springboot日志-简单总结

三、Springboot日志-简单总结1、日志框架小张;开发一个大型系统;1、System.out.println("");将关键数据打印在控制台;去掉?写在一个文件?2、框架来记录系统的一些运行时信息;日志框架 ; zhanglogging.jar;3、高大上的几个功能?异步模式?自动归档?xxxx? zhanglogging-good.jar?4、将以前框架卸下来?换上新的框架,重新修改之前相关的API;zhanglogging-prefect.jar;5、JDBC—数据库驱动; 写了一个

2020-11-08 14:43:55 177

原创 WIN10 网速受限解决思路及感受

WIN10 网速受限解决思路前言最近电脑更新比较频繁,不知从何日起,我的校园网的网速变成了1.7M/s,本来的网速一直都是15M/s,我认为电脑可能是抽风了。但是过了几天依旧是1.7M/s,于是就开始找问题解决的方方案和问题;问题首先,电脑是可以正常上网的,游戏,视频,QQ等都是正常的,唯一不正常的是网速。解决思路(解决方式错了,不一定代表问题源是错的)最先想到可能是驱动问题,于是去设备管理器升级网卡驱动结果更新完成后发现没有用。查看网络是否被代理结论没有任何

2020-11-01 10:53:41 2904

原创 el-admin 角色权限控制方式

el-admin 角色-权限在基于使用el-admin这个开源的后台管理框架的时候遇到了一个非常尴尬的问题,就是角色表的设计问题。当然这个问题可能会由于项目需求不同而消失,不是一定出现的。一、问题描述角色表角色id角色名称角色level角色描述1admin1管理员2staff2职工3visitor3游客权限表权限id权限内容1所有应用接口2前台全部应用部分3前台游客应用部分4后台职工应用部分

2020-10-24 18:59:46 1891

原创 Django项目创建(Pycharm版本)

Django项目创建(Pycharm版本)Django是python的web框架,通过这套框架可以快速创建pyhthon的web工程,其次它支持前后端统一,使得web工程的编写会更加简洁集中。创建Django项目(Pycharm版本)1. File -> New Project2. 选取配置由于网络或是其他问题create创建会等待相当长的时间3. 添加属性路径:项目名/settings.py​ 在最开头添加import os此行不添加,在启动的时候会出现下面的错误信息Na

2020-10-18 16:08:31 83 1

原创 有关数据表字段的updateTime creatTime的作用

有关数据表字段的updateTime creatTime的作用由于之一直再写前端的项目业务没有规范过后端你的字段表数据,一直都不太清楚后端数据表creatTime和updateTime在业务中的实际使用方式。然而在这次的项目实践中这两个字段起到了相当大的作用。示例对下表数据是远程数据库信息idnamedepartmentevaluatecreatTimeupdateTime1张三信息工程优2020-10-01 18:00:002020-10-01 18:00:0

2020-10-11 16:29:45 993

原创 MYSQL 查询单一数据优化

MYSQL 查询单一数据优化一、 前言在本次项目开发的时候,有相当一部sql语句是根据条件只查询一条数据,当然这个只查询一条数据无论是业务需求还是实际情况,总会需要用到。此时这条语句就可以优化。二、操作优化策略添加 LIMIT 1如:-- 原sql语句SELECT * FROM stuinfo where stuphone = '944f6d77f2dfa2cbd514';-- 修改为新SELECT * FROM stuinfo where stuphone = '944f6d77f2df

2020-10-04 11:08:59 596

空空如也

空空如也

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

TA关注的人

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