自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (1)
  • 收藏
  • 关注

原创 springboot使用request作用域创建bean

创建: @Bean @Lazy @Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS) public SsoUser ssoUser() { //TODO: find auth info from RPC context...

2020-02-27 16:31:18 1630

转载 wikipedia: PKCS#8

本文转载自维基百科: https://en.wikipedia.org/wiki/PKCS_8内容很简短,就不翻译了~shared with CC-BY-SA-3.0,转载需要以相同方式授权PKCS 8In cryptography, PKCS #8 is a standard syntax for storing private key information. PKCS #8 is...

2020-02-26 23:07:19 541

原创 实用工具集合

一、日常工具鼠标组合键管理 XMouseButtonControl鼠标的快捷键,我平时都用它来切虚拟桌面截屏工具snipaste比qq的截图更好用,可以直接在微软商店下载安装邮箱 foxmail虽然界面风格有点复古,但是功能不差,比win10自带的邮箱好用压缩/解压缩7zip只有1M,纯净无广告不过下载下来之后要先设置一下:进入工具->选项,点击+号关联文件格式...

2020-02-10 12:07:03 518

原创 Http状态码

1xx:消息这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送 1xx 响应。codemsg描述100Continue客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被...

2020-02-05 18:49:11 417

原创 为老蓝天主板BIOS注入NVME模块

固态现在很便宜,1GB只要1块多,看了看自己的电脑支持MkeyPCIEx4的接口,索性就买了个支持NVMe的固态(以后再买电脑直接就把这个固态放新电脑上用了)。然而买来之后发现BIOS不支持NVMe…启动时没法从新固态引导,新买的固态只能当从盘,这就非常尴尬了但是本着程序员的折腾精神,我的电脑是蓝天的主板,如果你的主板是其他厂商的话就可以换其他教程了…毕竟有些流程可能不一样增加NVMe模块...

2020-01-31 21:55:21 10021 1

原创 java String.getBytes()编码问题

今天遇到了一个诡异的问题,用类似下面的代码,对不同的字符串区md5时得到的结果竟然一样,public static void main(String[] args) { String s1 = DigestUtils.md5DigestAsHex("你好呀".getBytes()); String s2 = DigestUtils.md5DigestAsHex("你好呢".get...

2020-01-19 10:33:23 1403 1

原创 优雅地实现java枚举与int值地转换(Spring表单提交、Jackson、Mybatis、dubbo)

阿里巴巴的开发规范里有这么一条:5.【强制】二方库里可以定义枚举类型,参数可以使用枚举类型,但是接口返回值里不允许使用枚举类型或者包含枚举类型的POJO对象。网上很多人将此粗暴的理解为不让用枚举,这是错误的。这个规范只是不让在接口返回值中使用枚举,因为会存在潜在的序列化问题。但是在其他地方是可以使用枚举的,毕竟大家都用int的话,维护起来简直就是地狱。0、目标假如我有一个POJO类,里...

2019-11-29 16:42:35 953 1

原创 linux杀掉指定端口的进程

# |<- 按端口查pid ->|<- 过滤掉额外信息 ->|<-去重->|kill -9 `lsof -i:29102 |awk '{print \$2}'|grep -o '[0-9]*'|sort -u`#使用ssh:ssh [email protected] "kill -9 `lso...

2019-11-15 15:51:39 2398

原创 在windows中使用linux命令

注意本文讲的不是使用WSL或者Mingw之类的工具,而是使用更轻量级的busybox来实现在windows中使用一些linux的命令一、下载busyboxhttp://frippery.org/files/busybox/busybox.exe (这个链接下载的永远是最新版)二、创建软连接新建文本文档,将下面的代码复制进去并将文件修改后缀为bat,然后以管理员运行:@echo off...

2019-11-14 10:28:16 2028 4

原创 模块化开发

看到网上许多人关于项目划分模块的文章,有按照层次划分的,有按照业务逻辑划分完又按照层次再划分一遍的,比如这样:根项目: commons: #所有模块公用的类,如验证工具、RPC接口、dto等 业务线1: 业务1-dao: #dao层 业务1-service: #service层的实现,混杂了业务逻辑 业务1-web: #web层...

2019-09-20 22:22:52 829

原创 枚举类型的处理(Spring表单提交、Jackson、Mybatis、dubbo)

一、痛点我们的项目开发中一定会遇到枚举,那么如何将枚举值存储在数据库,如何把枚举值返回给前端就成了一个必须考虑的问题。假如我们的User实体定义如下,其中的status是个枚举,代表用户的状态:@Dataclass User{ private Long id; private UserStatus status;//用户状态}@Getter@AllArgsConst...

2019-09-20 21:35:55 1069

原创 如何定义响应体

一、引子我们在设计接口时无外乎以下两种:写:如创建、修改、删除,这里可能会包含复杂的校验逻辑,执行的结果可能是出错、部分出错、有部分警告。读:后端只是纯粹地根据用户提供的条件检索指定的数据,操作是幂等的,要么能查出来,要么查不出来,不会对已存在的数据造成影响。那么根据这样的分类,我们就可以设计出更具针对性的响应体。二、读操作对于读操作,因为每个读操作都是针对不同的资源,所以直接返回...

2019-09-15 14:25:21 1302

原创 异常处理以及服务器应如何返回异常状态

服务器应如何返回异常状态大多数人写后端的api时,都喜欢这样定义响应:HTTP 200 OK...headers{ code: 500, msg: "error" data: T}我查了查网上的资料,一种说法是一些地区的网络运营商会劫持4xx和5xx请求,所以一律把http这样看起来没什么问题,实际上用起来也没什么问题,但是仔细追究起来就显得非常不优雅,一种说法是运...

2019-09-15 02:15:26 4591

转载 RFC6749: The OAuth 2.0 Authorization Framework 原文

文章目录The OAuth 2.0 Authorization Framework1. Introduction1.1. Roles1.2. Protocol Flow1.3. Authorization Grant1.3.1. Authorization Code1.3.2. Implicit1.3.3. Resource Owner Password Credentials1.3...

2019-08-25 20:35:51 1355

原创 springboot使用外部配置文件启动

java -jar your-artifact.jar --spring.config.local=application.properties

2019-08-05 17:35:20 710

原创 debian安装docker-ce(使用阿里云仓库)

一、安装docker下面是使用阿里云的源进行安装的方法,如果在其他系统上安装,比如ubuntu,把debian换成ubuntu就可以了。# step 1: 安装必要的一些系统工具sudo apt-get updatesudo apt-get -y install apt-transport-https ca-certificates curl software-properties-com...

2019-07-08 20:24:37 5521

原创 JDK下载过慢的问题解决方案

下载JDK的时候,10k每秒的速度简直难以忍受,下面列出了一些解决方法可用的加速方法将下载链接去掉https由于下载时默认是https,所以会慢一些,使用http之后虽然还是慢,但是也能稳定在400k左右,不急的话这速度十分钟之内就可以下完,还可以接受使用下载工具下载使用诸如百度网盘、迅雷等下载工具下载,流氓加速,快的一批国内各大公司的镜像站比如华为的:https://repo.h...

2019-06-28 13:41:18 90985 41

原创 阿拉伯数字转人民币大写

从一分到千万亿,下面是js的实现,其他语言改一改就好//入参形如`100`, `100.00`amountCaptial(amountStr) { amountStr = amountStr + (amountStr.indexOf('.') >= 0 ? '0000' : '.0000'); let caps = ['零', '壹', '贰', '叁', '肆', '伍',...

2019-06-27 15:05:04 655

原创 SpringBootTest MockMVC绑定session(需要登陆的接口)

操作很简单,只需要一个对象:MockHttpSession。在每次构建请求的时候把session附加进去就行了,下面是示例代码@RunWith(SpringRunner.class)@SpringBootTest@Slf4jpublic class BlackCompanyWebApiTests { @Autowired private WebApplicationCo...

2019-06-24 10:56:37 4361 1

原创 JUnit参数化测试的写法

下面举了一个简单的例子来展示如何写一个参数化测试用例@RunWith(Parameterized.class)// 1. 指定Runnerpublic class EqualsTest { /** * 参数化测试用例 * * @return 返回一个一维数组,每个数组元素为一组测试用例。 * 每组测试用例为一个一维数组,将在测试时按照顺序注入被...

2019-04-21 21:31:56 737 2

原创 优雅地实现java枚举与int值地转换(JPA)

使用import lombok.Data;import lombok.Getter;import lombok.RequiredArgsConstructor;@RequiredArgsConstructor//为final字段创建构造函数public enum Process implements ConvertibleEnum { CREATED(1000)//已创建,未提...

2019-04-16 15:23:22 1751

原创 tornadofx 实现鼠标拖动窗口(多窗口)

本质上和javafx没有什么不同,网上看到的方案都是通过设置primaryStage的位置来实现,所以在多窗口情形下不论拖动哪个窗口都只会使主窗体移动。解决方案就是通过currentWindow来操作当前窗体,下面贴出我的代码:首先我们创建一个事件处理器来响应鼠标事件:class DragWindowEventHandler(private val currentWindow: Window...

2019-04-02 12:58:22 421

原创 后端返回数字类型时前端出现精度丢失情况的处理

问题如果前端要展示一个长整型数据878378273237766208,会出现精度丢失或格式问题:所以对于这类数据不能直接传给前端,需要做一些处理解决方案解决的办法就是后端在序列化时指定序列化器,将数据转化为字符串: //由于我用的时Jackson,所以这里直接加上这个注解就好了,如果你用的是其他json库则需要自行查找相关解决方案 @JsonSerialize(using...

2019-03-28 13:27:39 8831

原创 Native Library xxx\opencv_java400.dll already loaded in another classloader 错误解决

在将opencv整合进spring时出现了java.lang.UnsatisfiedLinkError异常:Exception in thread "restartedMain" java.lang.UnsatisfiedLinkError: Native Library *\opencv_java400.dll already loaded in another classloader at...

2019-02-22 10:21:09 1559 1

翻译 Hibernate Validator 6.0.15.Final (JSR 380 参数验证 的一种实现) 参考文档 翻译

一、前言验证数据是贯穿所有应用程序层(从表示层到持久性层)的常见任务。通常在每一层都要实现相同的验证逻辑,这既耗时又容易出错。而直接将这些验证逻辑捆绑到域模型中,也会使域模型变得非常混乱,因为这会让域模型类充斥验证代码。因为验证代码实际上是类本身的元数据,所以不妨直接在域模型上添加特定注解,直接约束域模型的值。实际上,在JSR 380 - Bean Validation 2.0中就约定了一套...

2019-02-22 09:59:33 444

原创 人民币大写转阿拉伯数字的java实现

人民币大写转阿拉伯数字的工具类,简单粗暴的替换就完事了import java.util.HashMap;import java.util.Map;public class ValueConvertUtil { /** * 将大写金额转换为字符串形式的阿拉伯数字。 * 支持小于一万亿的数字,可精确到小数点后两位 * 如果大写金额的格式错误,本函数不保证能...

2019-02-22 09:54:03 1327

翻译 Oauth2.0 ( RFC-6749 ) 中文译文

本文为RFC6749(OAuth2.0)的中文翻译,本文在不影响原文语义的情况下尽可能地采用更符合中文习惯的方式进行表述,如有翻译不妥当的地方请在评论中指出。PS:有些过于简单,或者不适合翻译的内容直接以原文呈现,如11节往后,基本上能读懂英语单词就不会有阅读障碍,所以就不翻译了。PPS:有些明明能简单的表述出来的东西非要绕十八个弯写出来,搞学术的都是鬼才。。。本文由spawpaw@ho...

2018-10-22 21:18:39 10167 2

原创 Redis:基本概念

一、前言Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted set...

2018-09-12 19:56:59 361

原创 JVM:GC(GarbageCollection,垃圾回收)

众所周知,Java程序不用像C++程序在程序中自行处理内存的回收释放。这是因为Java在JVM虚拟机上增加了垃圾回收(GC)机制,用以在合适的时间触发垃圾回收,将不需要的内存空间回收释放,避免无限制的内存增长导致的OOM。作为一个合格的Java程序员,有必要了解Java GC相关知识。掌握GC知识一方面可以帮助我们快速排查因JVM导致的线上问题,另一方面也可以帮助我们在Java应用发布之前合理地对...

2018-08-20 22:34:33 402

原创 MySQL:安装

Windowsmsi安装可以直接去官网下载MySQL全家桶(包含各种工具如MySQLWorkbench等)或者下载单独的mysql server,直接安装就好了。zip安装在MysqlServer 页面选择zip包,下载到本地后在cmd中执行如下操作: 1. 执行cd到mysql/bin目录下,执行以下命令,初始化数据库并生成一个无密码的root用户 2. mysqld...

2018-08-13 16:30:11 143

原创 Java多线程:Thread的使用,以及wait(),notify(),notifyAll()

本文章是Java多线程系列的一篇文章,其他文章: Java多线程:锁的底层实现 Java多线程:synchronized和volatile Java多线程:JUC包-锁的封装 Java多线程:Thread的使用,以及wait(),notify(),notifyAll() Java多线程:线程池一、Thread的状态在Thread类的1750行左右定...

2018-08-12 21:00:19 906

原创 MySQL:事务的ACID、并发问题、隔离级别

一、事务的ACIDAtomicity(原子性):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。Consistency(一致性):事务开始前和结束后,数据库的完整性约束没有被破坏 。比如A向B转账,不可能A扣了钱,B却...

2018-08-12 17:17:02 167

原创 MySQL:性能优化之 Performance Schema

一、简介Performance Schema 具有以下特征:从MySQL5.6开始,Performance Schema 默认打开MySQLPerformance Schema是一种用于在底层监视MySQL服务器执行的功能。Performance Schema具有以下特征:MySQL Performance Schema 用于监视MySQL服务器,且运行时消耗很少的性能。Perfo...

2018-08-08 13:54:59 1379

原创 MySQL:引擎

一、索引类型单列索引 普通索引index :加速查找唯一索引 主键索引:primary key :加速查找+约束(不为空且唯一)唯一索引:unique:加速查找+约束 (唯一)联合索引 primary key(id,name):联合主键索引unique(id,name):联合唯一索引index(id,name):联合普通索引全文索引fulltext :用于搜索很长一篇文章的...

2018-08-07 17:11:06 628

原创 MySQL:索引的类型及相关优化

一、索引类型单列索引 普通索引index :加速查找唯一索引 主键索引:primary key :加速查找+约束(不为空且唯一)唯一索引:unique:加速查找+约束 (唯一)联合索引 primary key(id,name):联合主键索引unique(id,name):联合唯一索引index(id,name):联合普通索引全文索引fulltext :用于搜索很长一篇文章的...

2018-08-07 17:02:35 196

原创 TCP协议:报文格式、三次握手和四次挥手

TCP报文的首部格式首先来看一下TCP报文的首部格式: 解释: 序号: 本报文段所发出的第一个字节的序号 确认号:期望接收到对方下一个报文的第一个数据字节的序号 ACK:仅当ACK等于1时,确认字段才有效 SYN:在建立连接时用的同步序号。当SYN=1,ACK=0时,表示是连接请求报文段。若响应SYN=1,ACK=1,表示对方同意建立连接 FIN:用来释放一个链接 窗口:从本...

2018-08-06 19:49:54 1378

原创 Linux:族谱(2018)

学习Linux肯定要了解一下Linux的派系,之前一直没有做过这方面的整理,今天顺便mark一下(这个图只更新到了12年) 参考资料 GNU/Linux Distribution Timeline...

2018-08-06 15:59:38 3119

原创 HTTP协议:页面缓存之Cache-Control 和 Etag

Cache-Control是HTTP协议的一部分,是在请求和响应中必须服从的指令,通常用于提高页面加载,阻止页面缓存对请求和响应造成不利的干扰。 Cache-Control 为单向指令,即请求中存在的指令,并不意味着响应中存在同样的指令一、请求1. Cache-Control RFC:7234#5.2.1 Request Cache-Control Directives...

2018-08-06 14:17:49 1104

原创 HTTP协议:报文格式

本篇将介绍HTTP报文的格式。HTTP请求格式HTTP响应格式示例例如用POST方法请求example.com的user路径请求体POST /user HTTP/1.1HOST: example.comUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/68.0.3440.75{&amp;amp;quot;...

2018-08-06 10:34:53 263

原创 HTTP协议:请求方法

八种标准请求方法HTTP方法(也被称作HTTP动词)定义了对指定URI所表示的资源所能做出的操作。 HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。 HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。GETGET方法请求指定资源的表示。使用GET的请求应该只检索数据,不应该有其他影响。W3C...

2018-08-06 09:56:04 309

十进制转十六进制

蓝桥杯基础组 十进制转十六进制 C代码

2016-01-31

空空如也

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

TA关注的人

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