- 博客(295)
- 资源 (5)
- 问答 (2)
- 收藏
- 关注
转载 Spring Boot 无侵入式 实现API接口统一JSON格式返回
无侵入式 统一返回JSON格式其实本没有没打算写这篇博客的,但还是要写一下写这篇博客的起因是因为,现在呆着的这家公司居然没有统一的API返回格式?,询问主管他居然告诉我用HTTP状态码就够用了(fxxk),天哪HTTP状态码真的够用吗?在仔细的阅读了项目源码后发现,在API请求的是居然没有业务异常(黑人问好)。好吧 居然入坑了只能遵照项目风格了,懒得吐槽了。因为项目已经开发了半年多了, 要是全部接口都做修改工作量还是挺大的, 只能用这种无侵入式的方案来解决.项目源代码: https:...
2020-10-23 10:46:37
135
转载 Spring如何实现AOP,请不要再说cglib了!
1. 从注解入手找到对应核心类最近工作中我都是基于注解实现 AOP 功能,常用的开启 AOP 的注解是 @EnableAspectJAutoProxy,我们就从它入手。上面的动图的流程的步骤就是:@EnableAspectJAutoProxy--> AspectJAutoProxyRegistrar-->AopConfigUtils .registerAspectJAnnotationAutoProxyCreatorIfNecessary-->AnnotationAwa
2020-10-23 10:38:55
137
转载 谈谈在 Java 中如何优雅地判空 !
判空灾难作为搬砖党的一族们,我们对判空一定再熟悉不过了,不要跟我说你很少进行判空,除非你喜欢NullPointerException。不过NullPointerException对于很多猿们来说,也是Exception家族中最亲近的一员了。为了避免NullPointerException来找我们,我们经常会进行如下操作。if(data!=null){dosth.}如果一个类中多次使用某个对象,那你可能要一顿操作,so:“世界第九大奇迹”就这样诞生...
2020-10-23 10:33:43
158
转载 这样规范写代码,同事直呼“666”
一、MyBatis 不要为了多个查询条件而写 1 = 1当遇到多个查询条件,使用where 1=1 可以很方便的解决我们的问题,但是这样很可能会造成非常大的性能损失,因为添加了 “where 1=1 ”的过滤条件之后,数据库系统就无法使用索引等查询优化策略,数据库系统将会被迫对每行数据进行扫描(即全表扫描) 以比较此行是否满足过滤条件,当表中的数据量较大时查询速度会非常慢;此外,还会存在SQL 注入的风险。反例:<selectid="queryBookInfo"parameter..
2020-10-23 10:27:44
126
转载 图解 SQL,这也太形象了吧!
本文介绍关系数据库的设计思想:在 SQL 中,一切皆关系。在计算机领域有许多伟大的设计理念和思想,例如: 在 Unix 中,一切皆文件。 在面向对象的编程语言中,一切皆对象。 关系数据库同样也有自己的设计思想:在 SQL 中,一切皆关系。关系模型关系模型(Relational model)由 E.F.Codd 博士于 1970 年提出,以集合论中的关系概念为基础;无论是现实世界中的实体对象还是它们之间的联系都使用关系表示。我们在数据库系统中看到的关系就是二维表(Table),
2020-10-23 10:24:54
242
1
原创 Antd 定制下拉框回显内容
效果图<div id="container" style="padding: 24px"></div><script> var mountNode = document.getElementById('container');</script>import React from "react";import ReactDOM from "react-dom";import "antd/dist/antd.css";im...
2020-10-21 16:30:44
2506
转载 7000+字带你全面搞懂 Git 命令+原理!
前言掌握Git命令是每位程序员必备的基础,之前一直是用smartGit工具,直到看到大佬们都是在用Git命令操作的,回想一下,发现有些Git命令我都忘记了,于是写了这篇博文,复习一下~文章目录 Git是什么? Git的相关理论基础 日常开发中,Git的基本常用命令 Git进阶之分支处理 Git进阶之处理冲突 Git进阶之撤销与回退 Git进阶之标签tag Git其他一些经典命令 Git是什么在回忆Git是什...
2020-10-14 17:36:23
256
转载 Spring 的 Bean 生命周期,11 张高清流程图及代码,深度解析
尊重原创,原文链接在网上已经有跟多Bean的生命周期的博客,但是很多都是基于比较老的版本了,最近吧整个流程化成了一个流程图。待会儿使用流程图,说明以及代码的形式来说明整个声明周期的流程。注意因为代码比较多,这里的流程图只画出了大概的流程,具体的可以深入代码1. 获取Bean第一阶段获取Bean这里的流程图的入口在AbstractBeanFactory类的doGetBean方法,这里可以配合前面的getBean方法分析文章进行阅读。主要流程就是 先处理Bean 的名称,因为..
2020-08-10 15:21:27
223
转载 这 35 个小细节,提升 Java 代码的运行效率!你知道几个?
尊重原创,原文链接前言代码优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可以优化的细节了,一个一个细小的优化点累积起来,对于代码的运行效率绝对是有提..
2020-08-07 17:53:19
194
转载 MySQL优化方法建议
尊重原创,原文链接一、EXPLAIN做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据 type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别 key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式 key_len列,索引长度 rows列,扫描行数。该值是个预估值 extra列,详细说明。注意常见的不太友好的.
2020-08-07 17:48:01
166
转载 进阶:秒杀系统是如何设计的?
尊重原创,原文链接前言:秒杀系统相信很多人见过,比如京东或者淘宝的秒杀,小米手机的秒杀。那么秒杀系统的后台是如何实现的呢?我们如何设计一个秒杀系统呢?对于秒杀系统应该考虑哪些问题?如何设计出健壮的秒杀系统?本期我们就来探讨一下这个问题:目录一:秒杀系统应该考虑的问题二:秒杀系统的设计和技术方案三:系统架构图四:总结一:秒杀应该考虑哪些问题1.1:超卖问题分析秒杀的业务场景,最重要的有一点就是超卖问题,假如备货只有100个...
2020-08-07 17:31:44
194
转载 求求你们了,别再写满屏的 try catch 了!!
尊重原创,原文链接背景软件开发过程中,不可避免的是需要处理各种异常,就我自己来说,至少有一半以上的时间都是在处理各种异常情况,所以代码中就会出现大量的try {...} catch {...} finally {...}代码块,不仅有大量的冗余代码,而且还影响代码的可读性。比较下面两张图,看看您现在编写的代码属于哪一种风格?然后哪种编码风格您更喜欢?丑陋的 try catch 代码块优雅的Controller上面的示例,还只是在Controller层,如果是在Se...
2020-08-07 17:14:13
154
转载 Spring 事务传播属性有那么难吗?看这一篇就够了!
尊重原创,原文链接学习东西要知行合一,如果只是知道理论而没实践过,那么掌握的也不会特别扎实,估计过几天就会忘记,接下来我们一起实践来学习Spring事务的传播属性。传播属性传播属性定义的是当一个事务方法碰到另一个事务方法时的处理行为,一共有七种行为,定义如下其实只看概念的话已经很直截了当了说明了每个传播性的作用,此时我们再用具体的例子演示一下每个传播性属性下的行为。此次演示我们使用的是H2数据库,这个数据库是作用在内存里面的,所以对于我们演示事务效果来说正好,无需我们在进行..
2020-08-07 17:02:36
174
转载 JVM 史上最最最完整深入解析
尊重原创,原文链接工作之余,想总结一下JVM相关知识。Java运行时数据区:Java虚拟机在执行Java程序的过程中会将其管理的内存划分为若干个不同的数据区域,这些区域有各自的用途、创建和销毁的时间,有些区域随虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束来建立和销毁。Java虚拟机所管理的内存包括以下几个运行时数据区域,如图:1、程序计数器:指向当前线程正在执行的字节码指令。线程私有的。2、虚拟机栈:虚拟机栈是Java执行方法的内存模型。每个方法被执行的时候,都.
2020-08-07 10:32:00
223
原创 React 页面刷新与组件卸载在setState时的区别
React 组件各生命周期中均没有对刷新事件的监听与响应,依赖原始的 window的 beforeunload的事件处理,具体实现如下import React, { Component } from 'react';export default class Demo extends Component { constructor(props) { super(props); this.state = {}; } componentDidMount() { ...
2020-07-31 11:50:13
1014
原创 React 父子组件互相传参的方法
import React, { Component } from 'react';import { Progress, Button, Rate, Slider, Divider } from 'antd';const ButtonGroup = Button.Group;class Child extends Component { constructor(props) { super(props); this.state = { percent: 0 }; }...
2020-07-23 20:38:46
435
原创 在VS Code中开发React常用插件
1、Chinese (Simplified) Language Pack for Visual Studio Code功能:Vs code 本地汉化包2、vscode-icons功能:文件类型图标3、filesize功能:在状态栏显示聚焦文件的大小4、PathAutocomplete功能:路径自动补全5、AutoCloseTag功能:自动添加 HTML/XML 关闭标签6、AutoRenameTag功能:自...
2020-07-15 11:44:41
13803
原创 PyQt5 QTableWidgetItem.setFlags()
链接https://doc.qt.io/qt-5/qt.htmlConstant Value (dec) Value (bin) Description Qt::NoItemFlags 0 0000 0000 0000 It does not have any properties set. Qt::ItemIsSelectable 1 0000 0000 0001 It can be selected. Qt::ItemIsEdit..
2020-06-17 15:59:29
2682
2
原创 Oracle 锁相关SQL
-- 查询Oracle正在执行的sql语句及执行该语句的用户select s.sid AS session_id,s.serial# AS serial_number, sql_text, -- 正在执行的sql s.username AS login_user, -- 登录oracle用户名 s.machine, -- 计算机名 spid, -- 操作系统id paddr from v$session s, v$proce..
2020-05-28 17:32:48
260
原创 IDEA控制台乱码的丧心病狂式解决方案
1、系统VM选项编辑 安装路径下 bin/idea.exe.vmoptions 和 bin/idea64.exe.vmoptions 文件,在行尾追加参数-Dfile.encoding=UTF-8重启 IDEA 试试2、用户VM选项菜单栏 Help → Edit Custom VM Options,在打开的文件中 追加参数-Dfile.encoding=UTF-83、编辑器菜单栏 Settings → Editor → File Encodings,将 Globa...
2020-05-14 19:09:36
978
原创 CentOS7 安装字体库,支持Dockerfile
步骤1:校验系统是否已安装字体管理工具$ fc-list-bash: fc-list: command not found步骤2:安装字体库管理工具$ yum -y install fontconfig步骤3:上传Windows系统字体库(磁盘路径在C:\Windows\Fonts)到CentOS7系统路径 /usr/share/fonts 下步骤4:$ yum -y install ttmkfdir$ ttmkfdir -e /usr/share/X11/fon...
2020-05-09 19:25:38
2115
1
原创 ERROR:(1,2) java:程序包javax.jws找不到
IDEA使用Maven打包报错,提示如下:ERROR:(1,2) java:程序包javax.jws找不到经查发现是JDK缺少servlet-api.jar 包解决方案1:步骤1:下载64-bit Windows zip(pgp,sha512),地址https://tomcat.apache.org/download-90.cgi步骤2:拷贝apache-tomcat-9.0.34/lib下的servlet-api.jar 包到jdk1.8.0_251/jre...
2020-05-09 11:56:08
9633
原创 java.security.NoSuchAlgorithmException:PBEWithMD5AndDES SecretKeyFactory not available
报错提示如下:Invocation of init method failed;nested exception is org.jasypt.exceptions.EncryptionInitializationException:java.security.NoSuchAlgorithmException:PBEWithMD5AndDES SecretKeyFactory not available从提示内容看到是某些加密算法没找到测试一下Set<String>..
2020-05-08 20:37:49
4220
1
原创 Linux上查找Python3的安装路径
[root@host /]# python3Python 3.6.5 (default, Apr 8 2020, 11:34:30)[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linuxType "help", "copyright", "credits" or "license" for more information.查询到 版本号为 ...
2020-04-08 17:46:27
4406
转载 深度解析Spring 的 Bean 生命周期
1、与Windows系统的文件传输# 安装yum -y install lrzsz# 上传rz# 下载sz 文件名2、压缩解压缩 zip# 安装yum install -y unzip zip# 解压缩unzip 文件名3、压缩解压缩 tar# 解压缩tar zxvf 某.tar# 压缩tar czvf 某.tar 文件夹更多h...
2019-12-26 14:16:56
277
原创 Python检索一段文字中的日期时间
# !/usr/bin/python3# coding: utf-8import reimport tracebackdef find(pattern, string): result = re.findall(pattern, string) if result: return str(result[0]) else: ret...
2019-12-06 15:33:10
707
转载 Enabling IDEA
WAY 1:CodeMNQ043JMTU-eyJsaWNlbnNlSWQiOiJNTlEwNDNKTVRVIiwibGljZW5zZWVOYW1lIjoiR1VPIEJJTiIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRV...
2019-11-06 13:49:05
845
原创 java.lang.IllegalArgumentException: INVOKESPECIAL/STATIC on interfaces require ASM 5
使用 Java8 Lambda 重写Collections.sort()时 报错List<String> names = new ArrayList<>();names.sort(Comparator.naturalOrder());// orList<User> users = new ArrayList<>();us...
2019-09-26 09:47:50
3985
2
原创 编程模式
分类一1、命令式编程代码的执行是一行一行执行的,类似于CMD窗口下的操作,后一步的执行与否永远取决于前一步的执行结果。Java、C、Python等都是这种编程模式。命令式编程的优点是条理清晰,调试方便。2、函数式编程将函数名作为其他函数的参数传递。典型的是Java8的λ表达式,JavaScript的回调函数等。3、声明式编程SQL、HTML、CSS等是典...
2019-08-30 17:17:03
621
原创 [C1801(len-as-condition)] Do not use `len(SEQUENCE)` to determine if a sequence is
a = list()# do somethingif len(a) > 0: print('a is not empty')PyLint检查报错:[C1801(len-as-condition)] Do not use `len(SEQUENCE)` to determine if a sequence is意思是说 不能使用 len 函数做判断条件...
2019-08-27 10:52:02
1856
转载 谈谈 Python 程序的运行原理
尊重原创,原文链接这篇文章准确说是『Python 源码剖析』的读书笔记,整理完之后才发现很长,那就将就看吧。以下使用的是 Python 2,在 Python 3 下一些细节可能会略有不同。1. 简单的例子先从一个简单的例子说起,包含了两个文件 foo.py 和 demo.py[foo.py]def add(a, b): return a + b[demo....
2019-08-09 10:18:54
305
转载 Python异常树
BaseException+-- SystemExit+-- KeyboardInterrupt+-- GeneratorExit+-- Exception +-- StopIteration +-- StandardError | +-- BufferError | +-- ArithmeticError ...
2019-08-08 17:06:19
447
转载 Windows平台Django项目部署
尊重原创,原文链接一、Python 3.*安装 Python 3.*,配置环境变量二、安装 IIS服务(1)控制面板 → 程序和功能 → 打开或关闭Windows功能 → Internet信息服务(2)控制面板 → 管理工具 → 双击打开 Internet 信息服务(IIS)管理器 备用三、安装依赖的第三方库管理员权限下依次执行如下命令:(1)...
2019-07-29 16:11:00
2494
原创 Django的模型Field
域类型 (Field types)一、数值类1、整型(1)IntegerField整型,范围 [-2147483648, 2147483647] ,即 [-2^31, 2^31-1],32位系统能够存储的最大的符号型整型常量2147483647 (首位为符号位,又有0占位,故而是2^31-1)(2)SmallIntegerField短(小)整型,取值范围依...
2019-07-24 11:59:21
610
原创 Js 和 jQuery 事件绑定与回调方法的 var型入参
1、Js原生的事件绑定方式<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>事件绑定与入参</title> <script type="text/javascript" src="jquery-3...
2019-06-28 19:54:10
367
原创 pyinstaller打包踩坑经验
先列提纲,改天写1、IDE运行没问题,EXE运行缺包因为 IDE 的venv和系统venv不是一个地址2、no module named ...这个错误3、给exe添加图片方法,exe放大后图标发生变化的问题4、_MEI问题5、引入 文件夹作为执行依赖的情况6、Qt导包缺包问题...
2019-06-21 19:57:50
847
1
原创 照片的GPS位置信息读取
一、照片的 EXIF信息手机、相机拍摄的照片会自带一些诸如拍摄时间、地点、镜头型号、曝光度、图像尺寸等附加信息,在Windows上可以通过右键文件属性查看和修改相关参数。EXIF (exchangeable image file format) 就是此类信息的简称。Python第三方包 exifread 为读取 照片 EXIF信息提供方便。二、 照片的 GPS信息照片EX...
2019-06-18 15:36:02
4925
1
原创 永久免费无水印 Heic转JPG小工具
百度云:https://pan.baidu.com/s/1ocM1ElQrzW5oBr12K5KKWg提取码:njdl自己封装的小工具,懒得写图形界面,原谅我用命令窗口应付了事使用方法:将 exe程序放到 .heic文件同级目录下,双击运行即可完成转换,自动生成同名 .jpg文件运行时:结果:注意:1、如已存在同名 ...
2019-06-17 12:39:55
37217
84
原创 Python中 sys._MEIPASS 是什么
用pyinstaller 打包生成的 exe 文件,在运行时动态生成依赖文件,sys._MEIPASS 就是这些依赖文件所在文件夹的路径通常C:\Windows\Temp\_MEIxxxx或C:\Users\用户名\AppData\Local\Temp\_MEIxxxx仅在 exe 运行时有效,IDE运行时报错:AttributeError: module 'sys...
2019-06-14 14:35:30
13251
原创 Python实现的重复文件清理
一、情景描述1、磁盘文件太多,又舍不得删,单纯想清理出重复文件,人工太费力2、成品下载: 百度云:https://pan.baidu.com/s/1W3pHU-dGi_mrd8M140Vogg 提取码:ji0r3、成品使用: (1) 将 repeat.exe 文件放置到要遍历的文件夹内; (2) 双击运行repeat.ex...
2019-06-12 16:35:11
1505
OracleXE安装后用户登录出现ORA-01089错误
2015-04-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人