自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (4)
  • 收藏
  • 关注

原创 数据挖掘分析流程

特征处理

2024-03-20 11:25:36 665 1

原创 做一个自己搭建的springcloud项目的技术点

下面是一个feign的配置类,它配置了feign的自定义解析器与编码器,和feign调用前的拦截器(主要是调用前带上请求头信息token).import com.fasterxml.jackson.databind.JsonNode;import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.type.TypeFactory;import com.macro.mall.common.

2022-01-09 19:05:14 223

原创 vscode可以配置开发环境c或java。

​本篇文章虽然是VsCode挂名,但其实介绍了两款神器: Vscode和Vim, 这两个结合起来,开发效率蹭蹭蹭!!!之前接触过VsCode但很少用。总感觉写Python不如pycharm香,还得安装各种插件。但最近实习中,发现在项目上有一些较为庞大的推荐架构项目,全是c++代码,后期还要基于项目代码做架构开发,这就涉及到了写C++项目,而且好几个项目一块看,还要满足互相跳转,因为有些变量的定义可能在继承的父类项目里面。于是就又接触回VSCode, 发现还挺好用,并且插件强大,只用VSCode这一款

2021-10-24 00:04:38 5389

转载 cookie,session,token之间的关系

今天和大家聊一下关于Cookie、Session、Token的那些事儿。这是我的一个读者朋友面试微信的实习岗位时遇到的,在此和大家分享一下。话不多说,直接开车。1. 网站交互体验升级作为网友的我们,每天都会使用浏览器来逛各种网站,来满足日常的工作生活需求。现在的交互体验还是很丝滑的,但早期并非如此,而是一锤子买卖。1.1 无状态的 http 协议无状态的 http 协议是什么鬼?HTTP 无状态协议,是指协议对于业务处理没有记忆能力,之前做了啥完全记不住,每次请求..

2021-10-17 23:23:01 284

原创 自己的sdk

设计sdk的三步思路:​ 数据传输模块:主要用于传输请求数据,本文使用http协议传输数据 序列化模块:用户序列化和反序列化数据,SDK是给客户使用应该尽可能的去适配客户的意愿,如客户首先的序列化方式为JSON那,作为使用方肯定是会希望SDK能支持JSON序列化和反序列化的 应用模块:主要是协调数据传输、序列化之间的工作,同时对数据做一些校验签名操作 基本功能数据传输数据传输协议使用较为通用的http协议,一开始是想是否做一个通用的设计来支持其他的传输方式,如支

2021-10-06 22:39:32 259

原创 springcloud中微服务之间安全调用

但是在在微服务集群中服务之间暴力的接口,或者对于第三方开放的接口如果不做及安全和认证,后果可想而知。阅读下文之前思考几个问题: 如何在restTemplate远程调用请求增加添加统一认证? 服务认证如何规范加密和解密? 远程调用统一什么协议比较合适? 如下图,三个服务注册到同一个注册中心集群,服务A、B、C之间如果不做任何限制,服务之间的接口基本是互通的。但是如果A、B、C之间要做服务认证该如何设计?如果外部定制集成服务D接入怎么保证服务的安全性?

2021-10-05 23:15:39 564

原创 redis分布式锁

分布式锁有哪些特性? 互斥性:锁的目的是获取资源的使用权,所以只让一个竞争者持有锁,这一点要尽可能保证; 安全性:避免死锁情况发生。当一个竞争者在持有锁期间内,由于意外崩溃而导致未能主动解锁,其持有的锁也能够被正常释放,并保证后续其它竞争者也能加锁; 对称性:同一个锁,加锁和解锁必须是同一个竞争者。不能把其他竞争者持有的锁给释放了,这又称为锁的可重入性。 可靠性:需要有一定程度的异常处理能力、容灾能力。 ...

2021-09-29 20:40:47 263

原创 spring事务失效的几个场景

对于从事 java 开发工作的同学来说,spring 的事务肯定再熟悉不过了。在某些业务场景下,如果一个请求中,需要同时写入多张表的数据。为了保证操作的原子性(要么同时成功,要么同时失败),避免数据不一致的情况,我们一般都会用到 spring 事务。确实,spring 事务用起来贼爽,就用一个简单的注解:@Transactional,就能轻松搞定事务。我猜大部分小伙伴也是这样用的,而且一直用一直爽。但如果你使用不当,它也会坑你于无形。今天我们就一起聊聊,事务失效的一些场景,说不定你已经中招了

2021-09-24 14:59:44 147

原创 springboot接入支付宝

准备环境若是想接入真实的支付宝支付业务,需要大量的材料审核,所以,我们以支付宝提供的沙箱环境为例进行介绍,首先下载官方DEMO,地址为https://opendocs.alipay.com/open/270/106291/:将JAVA版的DEMO下载好,它是一个Eclipse的项目,将其导入Eclipse打开,目录结构如下:在AlipayConfig类中有着大量的配置:publicclassAlipayConfig{//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息...

2021-09-24 14:58:20 1447 1

原创 二叉树结构

很多时候我们需要使用非递归的方式实现二叉树的遍历,非递归枚举相比递归方式的难度要高出一些,效率一般会高一些,并且前中后序枚举的难度呈一个递增的形式,非递归方式的枚举有人停在非递归后序,有人停在非递归中序,有人停在非递归前序(这就有点拉胯了啊兄弟)。我们回顾递归,它底层其实是维护一个栈,将数据存到栈中,每次抛出栈顶的数据进行处理(也就是递归、dfs的方向化、极端化枚举特征非常明显),我们驾驭递归的时候更重要的是掌握上下层之间的逻辑关系。而非递归方式我们除了需要掌握上下层的逻辑关系之外,要手动的处理各种

2021-09-23 15:09:20 134

原创 自动生成网站的工具

​对大部分同学来说,有自己的网站是很酷的事情。我还记得自己第一次亲手搭建个人博客时,真的是满满的成就感!但不得不说,随着技术的发展和开源,如今现成的东西实在太多了!想要拥有个人网站,基本也都不用自己写代码了,几分钟就能轻松搞定。下面就分享一波现成的、开箱即用的网站生成器,对于想要快速搭建个人网站、甚至是上线属于自己产品的同学来说,绝对是非常不错的!WordPress开源的建站系统,小到个人博客、大到企业电商平台,都可以轻松实现。WordPress 的强大之处在于傻瓜式、多主题、插件.

2021-09-22 11:58:22 7312

原创 netty使用websocket协议开发demo

服务端示例:package com.atguigu.netty.websocket;import com.atguigu.netty.heartbeat.MyServerHandler;import io.netty.bootstrap.ServerBootstrap;import io.netty.buffer.ByteBuf;import io.netty.buffer.Unpooled;import io.netty.channel.ChannelFuture;import io.

2021-09-22 11:32:05 205

转载 一个故事说明https的安全性

我和小宇早恋了,上课的时候老说话。老师把我们的座位分得很远,我在第一排,她在最后一排,我们中间隔了很多人。但我们还是想通过传纸条的方式交流。我们中间的那些同学,虽然坏心思比较多,但好在可以保证将纸条传递到位,于是我们用传纸条的方式,一直秘密交流着感情。但好景不长,我们渐渐发现,中间这些同学特别不靠谱,出现了以下两种恶劣的行为:偷看纸条,把我们的小甜蜜作为他们饭后的谈资。篡改内容,让我们之间产生了好多误会。这还了得,我必须得想个办法才行!单钥匙锁

2021-09-22 11:25:54 121

转载 16个Matplotlib实用技巧

1. 添加标题-titlematplotlib.pyplot 对象中有个title()可以设置表格的标题。import numpy as npimport matplotlib.pyplot as plt# 显示中文plt.rcParams['font.sans-serif'] = [u'SimHei']plt.rcParams['axes.unicode_minus'] = False%matplotlib inlinex=np.arange(0,10)plt.tit..

2021-09-08 11:43:39 72

原创 python的 Numpy

1. 数组 ndarray是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。 ndarray 对象是用于存放同类型元素的多维数组。ndarray 中的每个元素在内存中都有相同存储大小的区域。 1.1 创建数组最简单的方式是使用array函数来创建数组data1=[6,7.5,8,0,1]arr1=np.array(data1)arr1 # array([6. , 7.5, 8. , 0. , 1. ])此外,还可以通过以下方法来创建数组 从已

2021-09-08 11:38:02 547

原创 excel中使用python代码

这次我们会介绍如何使用xlwings将Python和Excel两大数据工具进行集成,更便捷地处理日常工作。说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5亿忠实用户,而作为网红语言的Python,也仅仅只有700万的开发人员。Excel是全世界最流行的编程语言。对,你没看错,自从微软引入了LAMBDA定义函数后,Excel已经可以实现编程语言的算法,因此它是具备图灵完备性的,和JavaScript、Java、Python一样。虽然Excel对小规模

2021-09-05 21:22:53 1026 1

原创 linux系统下手把手教你oracle安装

前面给大家分享了《手把手教你在 Linux 环境下部署 Oracle 数据库!》和《手把手教你 Oracle 数据库升级!》两篇文章。今天再来给大家分享一下在 Linux 7 环境下部署 Oracle RAC(11GR2版本)的详细步骤;Oracle RAC 是什么?Oracle Real Application Clusters (RAC) 允许客户跨多台服务器运行单个 Oracle 数据库,以最大限度地提高可用性并实现水平可扩展性,同时访问共享存储。连接到 Oracle RAC 实例的用户会话可

2021-09-05 21:21:10 1410

原创 springboot项目调优

项目调优概述作为一名资深工程师,项目调优这事,是必须得熟练掌握的事情。在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。一、修改配置文件关于修改配置文件application.properties。SpringBoot项目详细的配置文件修改文档其中比较重要的有:server.tomcat.max-connections=0#Maximumnumberofconnectionsthattheserveracceptsandproce...

2021-09-03 09:44:34 146

转载 类似mybatis的代码生成器,利用模板生成代码

一、介绍在实际的软件项目开发过程中,我可以很负责任的跟大家说,如果你真的实际写代码的时间过5年了,你对增删改查这类简单的功能需求开发,可以说已经完全写吐了,至少我就是这种类型的。但是呢,不可否认,绝大多数的软件功能,向下追随到最基本的单元,也基本都是单表的增、删、改、查!只是随着用户需求不断增多,原来可能一个张单表就可以搞定的事情,现在可能需要多张表,或者多个库才能搞定,代码层就像堆积木一样,越堆越复杂。我记得早期做项目的时候,项目每新加一张单表,我都需要在代码层,按照MVC框架的思想,重新

2021-09-03 09:35:22 482

原创 自定义注解实现日志打印

通常为了监控系统,我们希望将请求的入参和出参记录到数据库中,已备后查。除了在每个方法里面加日志处理代码,手动保存到数据库,还有其他的办法吗?今天就给大伙介绍一个注解@Log2DB什么?没这个注解?是的,这个注解是自定义的,那用这个注解能干什么呢?怎么写一个自己的注解呢?今天我们一起来探讨下。首先,我们随便找个注解,看下它的结构@RestController@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)..

2021-09-02 17:55:33 446

转载 java8 stream使用示例

先贴上几个案例,水平高超的同学可以挑战一下: 从员工集合中筛选出salary大于8000的员工,并放置到新的集合里。 统计员工的最高薪资、平均薪资、薪资之和。 将员工按薪资从高到低排序,同样薪资者年龄小者在前。 将员工按性别分类,将员工按性别和地区分类,将员工按薪资是否高于8000分为两部分。 用传统的迭代处理也不是很难,但代码就显得冗余了,跟Stream相比高下立判。Java 8 是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的Lambda...

2021-09-02 11:14:57 492

原创 java cms垃圾回收

笔者此篇文章只聚焦于如何配置一个比较合理的采用CMS作为垃圾回收器的JVM参数。首先要说的是,JDK8要使用CMS,那么必须显示申明,因为它采用的默认垃圾回收器是ParallelGC。如何验证它默认采用的垃圾回收器呢?非常简单,运行如下代码:packagecom.afei.test.main;importjava.util.ArrayList;importjava.util.List;/***@author公众号:阿飞的博客*/publicclassMain{...

2021-08-30 19:32:41 735

原创 tcp三次握手

在后端相关岗位的入职面试中,三次握手的出场频率非常的高,甚至说它是必考题也不为过。一般的答案都是说客户端如何发起 SYN 握手进入 SYN_SENT 状态,服务器响应 SYN 并回复 SYNACK,然后进入 SYN_RECV,...... ,吧啦吧啦诸如此类。但我今天想给出一份不一样的答案。其实三次握手在内核的实现中,并不只是简单的状态的流转,还包括半连接队列、syncookie、全连接队列、重传计时器等关键操作。如果能深刻理解这些,你对线上把握和理解将更进一步。如果有面试官问起你三次握手,相信这份答案

2021-08-29 15:06:48 127

原创 python处理excel

0 Python Excel库对比我们先来看一下python中能操作Excel的库对比(一共九个库):1 Python xlrd 读取 操作Excel1.1 xlrd模块介绍(1)什么是xlrd模块? python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。 (2)为什么使用xlrd模块? 在UI自动化或者接口自动化中数据维护是一个核心,所以此模块非常实用。 xlrd模块可以用于读取Excel的数据,速度非常

2021-08-27 22:53:47 375

原创 python处理word文档

python处理word实现自动化办公环境安装使用Python操作word大部分情况都是写操作,也有少许情况会用到读操作,在本次教程中都会进行讲解,本次课程主要用到以下4个库,请大家提前安装。升级pip(便于安装最新库)python-mpipinstall-Upipsetuptoolspython-docx(我们大部分操作都是使用此库)安装方法:pipinstallpython-docx使用方法:fromdocximport...

2021-08-27 22:45:19 815

转载 用python识别照片的主人

思路:一、数据收集,可以采用爬虫对网上海里的明星信息进行有针对的爬取二、格式化数据,存入mysq,把明星的自拍照的文件名存入数据库中三、使用百度的api对程序进行编写,说实话,百度人脸识别做的很棒了,精确度很高四、你上传一张图片(或者你能想象到的方式),后面的程序会对你海量的数据库中人的信息进行比对五、输出匹配到的人的信息,和相似度的数值。直接上代码:测试图片:明星数据库:明星的照片所在目录:明星照片:

2021-08-27 13:54:34 561

原创 免费在线画思维导图

常用图我平时画的比较多的是流程图、交互图和架构图,一般使用Draw.io这款免费的在线网页绘图工具就可以搞定了。之所以选择这款绘图工具,主要是以下几个原因:1. 使用方便无需登录,直接进入网页,可以直接使用海量模板新建项目。选择模板然后进入编辑页面,在左侧选择需要的图形,拖到绘图区进行编辑,然后在右侧修改样式就好了。Draw.io 在线绘图可以直接搜索需要的图形,比如服务器,当然也可以直接粘贴本地或网络图片。2. 样式美观Draw.io 提供了几种默认..

2021-08-25 21:04:46 491

原创 手写一个去视频水印的程序

去水印使用预览下边和大家一起分析下做这个去水印工具的思路,很多人乍一听去水印,下意识地觉得是一种什么牛比的算法,其实这是一种假象~刨根问底虽说要争口气,可刚开始做的时候我也真是一脸懵逼,因为根本不知道该从哪入手,去水印什么原理啊?难不成我还要写个算法?找了一个抖音视频的分享链接,一点点分析,不难发现这是个经过处理的短链接,那这个短链接一定会重定向到真实的视频地址URL。https://v.douyin.com/JSkuhE4/浏览器中输入短链接得到了下边这个UR...

2021-08-23 22:27:46 852 3

原创 分布式系统数据同步问题

分布式系统,通过数据冗余,来保证数据的安全。要写一个分布式系统,一道绕不过去的坎,那就是数据同步。同步,这两个字,折磨死了很多人。是同步,还是异步?是push,还是pull?谁是master,谁是slave?下线会怎样,上线了又会怎样?中心化,or对等节点?这些问题,无一不拷打者分布式系统的设计者。下面,我们将看一下主流的几个存储服务,是如何解决数据同步问题的。MySQL如何做主从同步?mysql的主服务器叫做master,从服务器叫做slave。主服务器将变更记录在binlog中,slav

2021-08-23 22:23:07 1910

原创 一个开源任务调度项目

​一个轻量级分布式任务调度框架 —— XXL-JOB开源代码比较简单易懂,文档也很齐全。它支持通过Web页面对任务进行 CRUD 操作,支持动态修改任务状态、暂停/恢复任务,以及终止运营中任务,支持在线配置调度任务入参和在线查看调度结果。如果事与愿违,请相信一切都是最好的安排。人这一生不过是一场体验,酸甜苦辣,喜怒哀乐,品尝过了,这一生也就圆满了。古人言:“月有阴晴圆缺,人有悲欢离合,此事古难全。”人的一生,说长也不长,满打满算也就三万多天,说短也不短,从青春少年到老之将至,也有整整几十年的..

2021-08-22 12:02:09 457

转载 java配置文件中数据库密码加密

最近,有位读者私信我说,他们公司的项目中配置的数据库密码没有加密,编译打包后的项目被人反编译了,从项目中成功获取到数据库的账号和密码,进一步登录数据库获取了相关的数据,并对数据库进行了破坏。虽然这次事故影响的范围不大,但是这足以说明很多公司对于项目的安全性问题重视程度不够。数据泄露缘由由于Java项目的特殊性,打包后的项目如果没有做代码混淆,配置文件中的重要配置信息没有做加密处理的话,一旦打包的程序被反编译后,很容易获得这些敏感信息,进一步对项目或者系统造成一定的损害。所以,无论是公司层面还

2021-08-19 21:41:39 4295 1

翻译 python使用多线程爬取

/ 01 / 网页分析小说章节内容接口由上图可知。第几部、第几章,遍历一遍就完事了。这里主要是利用多线程进行爬取,一方面是减少爬取时间,另一方面也是对多线程进行一波简单的学习。通过Python的threading模块,实现多线程功能。不过爬太快还是会遭封禁...所以本次的代码不一定能完全成功,可以选择加个延时或者代理池。这里人物情况是网上找的,相对来说还是比较完全的。所以也爬下来,当词典用。/ 02 / 数据

2021-08-19 21:38:22 707

原创 异步线程池与定时任务线程池

异步线程池与定时任务线程池:两个线程池都是一样的步骤:第一步是线程池配置;第二步写具体定时或异步任务。先看异步线程池:package com.xnpool.common.async;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annota

2021-03-24 20:23:41 2043

原创 我用过的mybatisplus处理枚举过程

我用过的mybatisplus处理枚举过程,这里作一个记录,方便自己后面用到时,借鉴。1:我的枚举都继承一个BaseEnum接口。2:我写了一个枚举的类型转化工厂,BaseEnumConverterFactory工厂类。3:在我的ObjectMapper中使用了这个枚举类的序列化和反序列化。 然后将ObjectMapper放入mybatis中的typeHandler中。晒第一步代码:public interface BaseEnum { String getDesc();

2021-03-24 17:08:25 461

原创 mybatisplus的有一些字段可以自动填充

mybatisplus的有一些字段可以自动填充,比如创建时间,创建人,修改时间修改人等。 和一些逻辑删除状态,刚增加的时候可以有一个默认值,比如每次增加记录是isDelete=0,不用每次都去赋值。有两个步骤:1:在实体类中给字段加上注释。增加时是fill = FieldFill.INSERT,修改时是fill = FieldFill.UPDATE@Data@TableName("city_store")public class Store implements Serializable.

2021-03-24 11:34:44 158

原创 总结一下openfeign的用法:

总结一下openfeign的用法:分为三步:1:引包导入2:在启动类上加注解,启用feign. 可以扫包带有@FeignClient的,及可以设置它的配置类;3:写feign接口,可以配置下feign接口的调用规则。第一步引包,我这里用的是okhttp.<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-clou.

2021-03-24 10:46:44 401

原创 mybatisplus代码生成器

mybatisplus代码生成器:第一步引包:<!--MyBatis Plus 依赖--><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version></d

2021-03-23 11:26:48 238

原创 springboot使用mybatisplus的多数据源,连接三个数据库

springboot使用mybatisplus的多数据源,连接三个数据库,进行操作。看配置数据源文件。spring: datasource: url: jdbc:mysql://localhost:3306/enterprise_wallet?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: 123456 ds

2021-03-23 11:09:17 664

原创 总结一下springboot静态资源映射

总结一下springboot静态资源映射。就是可以用项目访问路径来访问 服务上的文件。比如我的项目路径是http://xxx:8080/demo ,我访问我磁盘中的图片路径是http://xxx:8080/demo/static/demo.jpgpackage com.xnpool.common.config;import org.springframework.beans.factory.annotation.Value;import org.springframework.contex.

2021-03-23 10:29:52 165

原创 总结一下redis的使用

总结一下redis的使用。我这里是有一个redisTemplate操作缓存数据, 和一个使用缓存管理器,对方法缓存的注解。两种方式缓存。第一步引包:<!--redis依赖配置--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId>.

2021-03-22 21:46:49 254

springweb-Jackson

对于在sringmvc中将Map自动转到json返回到页面中。 1:加入三个jar包: maven中是&lt;!-- Jackson Json处理工具包 --&gt; <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> 2:在springweb.xml中加入: <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> <ref bean="stringHttpMessageConverter" /> </list> </property> </bean> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" /> <bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=utf-8</value> </list> </property> </bean> 就这两步,你返回的map就会到页面就自动转成了json了。

2018-04-11

navicate for sqlserver

sqlserver数据库的客户端,管理操作sqlserver数据库。

2018-03-23

递归删除文件

用递归的方法删除一个目录下的所有文件及子目录.代码在这一个java类中.在main方法中写个存在的目录(最好是不用了的),直接运行可看到效果

2017-09-17

java克隆对象(两种方法)

java的两种深度克隆方法,1cloneTest是用Cloneable接口的clone方法实现(对象必须要实现cloneable接口).2cloneSerialize.java是用对象流写对象到byte数组中,然后从byte数组中取得对象.(对象必须要实现serializble接口)

2017-09-17

空空如也

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

TA关注的人

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