- 博客(54)
- 资源 (1)
- 收藏
- 关注

原创 SpringBoot使用小笔记
公司新项目经历了(2004-2018)14年后由于业务的升级及原技术的陈旧,决定对项目进行重构,使用目前非常火爆的SpringCloud。SpringCloud是一套微服务架构,是基于SpringBoot实现的。在项目开发时积累了一些SpringBoot相关的知识点,整理如下:统一返回格式与全局异常处理事物控制MybatisPlus的使用AOP使用Redis和Kafka的集成Spr...
2018-07-08 21:03:58
308
原创 MySQL 事务默认隔离级别?能否解决幻读?
事务隔离级别MySQL 中事务隔离级别有 read uncommited、read commited、repeatable read、serializable 四种,其中默认为 repeatable read(可重复读)。为什么默认隔离级别是 RR,其实是个历史问题,参考 为什么mysql选可重复读作为默认的隔离级别?简单来说就是 MySQL 主从复制是基于 binlog(二进制文件),binlog 模式有 statement、row、mixed 三种,分别代表文件记录修改的 SQL 语句、记录行数
2021-07-13 16:11:40
1483
2
原创 nginx 进行 https 反向代理 nextcloud 后 APP 不能访问的解决办法
问题描述:nextcloud 运行在 docker 中,之前一直是通过 http 协议 ip 端口方式访问没有问题。修改为 nginx 反向代理并设置为 https 协议访问后,手机 app 和 pc 端均不能访问。解决办法:修改 nextcloud 配置文件,在 /var/www/html/config 目录下的 config.php,添加如下内容'overwriteprotocol' => 'https',修改完不需要重启。配置文件(参考)nginx配置如下:server {
2020-11-28 23:35:30
12441
16
原创 使用 Docker 搭建 Nextcloud
说明本文内容参考 GitHub官方文档 和 Docker Hub。在安装 nextcloud 时选用 MySQL 和 Redis 作为数据库,没有使用默认的数据库。配置 Docker 仓库配置国内仓库地址提高下砸镜像速度,修改配置文件/etc/docker/daemon.json,没有就新建,添加如下配置(我这里配置了多个地址):{ "registry-mirrors": [ "https://3laho3y3.mirror.aliyuncs.com",
2020-11-14 17:31:04
2737
原创 网上关于 Connection reset 问题的文章
Connection reset原因分析和解决方案一次"Connection Reset"的根因和修改方式调查异常记录——Connection reset
2020-04-16 17:06:22
605
原创 总结几个问题
1 页面不刷新,token未失效描述:升级补丁中后台需要前端多传一个参数,约定该参数不为null。升级后,前端页面没有刷新,token未失效,导致给后台传递时没有新增的这个参数,后台接收是用实体对象接收,导致该字段为null。另后台没有对该字段设置默认值和非空校验,导致后台出现数据异常。解决:后台应该对必要参数做校验。2 微服务之间调用格式不统一解决:微服务之间调用的报文格式应该统一,包括...
2020-01-14 17:55:55
224
1
原创 回调函数
1 JavaScript 中使用回调函数: JS 回调函数浅析// 函数Afunction A(callback) { // 执行操作 console.info("..."); // 执行回调函数 callback();}// 回调函数function B() { console.info("callback");}// 执行AA(B);2 C 中使用回调函数: C语...
2019-12-19 11:01:45
169
转载 Jackson反序列化错误:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field的解
原文地址:https://www.cnblogs.com/EasonJim/p/7990909.html// 第一种解决方案// ObjectMapper对象添加mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);String s = "{\"id\":1,\"name\":\"test\",...
2019-09-27 16:23:27
13409
1
原创 难以理解的锁(二) Threads
一、Interrupt关于中断的方法Java中线程的中断(interrupt)是指线程的中断状态,true 或 false。Interrupt相关的方法:isInterrupted :判断线程的中断状态,如果线程被中断返回true。interrupt :中断当前线程,将中断状态设置为true。interrupted :静态方法,判断当前线程是否中断,并且重置中断状态为false。设...
2019-09-11 12:00:53
354
原创 难以理解的锁(一) ReentrantLock
一、AbstractQueuedSynchronizer属性属性类型作用stateint表示是否被线程持有,0表示没有,n表示线程重入次数headNode线程阻塞队列的头节点,head表示正在持有锁的线程tailNode线程阻塞队列的尾节点,未竞争到锁的Node将添加至队列尾部unsafeUnsafe含有CAS原子操作的类,调用本地方法实...
2019-09-05 16:19:08
473
原创 源码:常用集合类 之 HashMap
0 前言 Hashmap 内部结构是数组加链表或数组加红黑树实现。table表示数组,存放map中每个 K-V 都封装成node结构放入链表或者树中。table的每个下标位置就是一个桶,桶内是链表或红黑树。size则表示当前map中node个数。 Node 结构:1 属性的声明DEFAULT_INITIAL_CAPACITY:默认初始容量16MAXIMUM_CAPACITY:最大...
2019-08-18 11:02:37
273
原创 源码:常用集合类 之 ArrayList
前言在开发过程中下面这段代码不知道写了多少次,是时候拨开它的外壳,看看内部构造了。List<T> list = new ArrayList<>();本文的代码片段均来自jdk1.8源码。属性的声明每个变量都有详细注释,简单说一下:DEFAULT_CAPACITY:默认容量为10,常量EMPTY_ELEMENTDATA:空数组,常量DEFAULTCAPACI...
2019-08-17 16:24:33
259
原创 能不能别再笨拙的处理XML报文了?!
文章目录前言一、xjc & trang.jar 生成 java code二、IntelliJ IDEA Tools 生成 java code三、XML 与 JavaBean 的映射四、JavaBean 的校验前言Document doc = DocumentHelper.parseText(xml);Element root = doc.getRootElement();Elem...
2019-08-06 12:02:31
392
1
原创 云提醒 - 我的第一个个人项目
用了两周自由时间完成了这个小dome,还有很多不完善的功能需要后续更新,核心功能短信发送由于各个平台不对个人项目支持也没有完成,只是预留了接口,后期准备通过短信或者App方式实现。下面是项目展示和说明,代码目前上传至GitHub,链接: Remind 。展示1. 登录2. 注册3. 日历4. 提醒列表说明1. 开发项目后端使用Java8+SpringBoot2.1.6+M...
2019-07-08 20:52:23
273
原创 使用转接头(适配器)
前俩天老妈说从家里抽屉里找到个耳机但是用不了,我让她拍个照片给我看,原来是因为手机是Type-C接口,耳机是3.5mm头的。于是我买了个转接口给她。如下图: 本能反应的我,立马开始联想了起来…适配器情景1 没有耳机 mom的手机public class MomPhone { private TypeC earphone; public void play(...
2019-06-14 18:09:21
923
1
原创 SpringBoot项目中MybatisPlus的使用(二)
本文主要内容:自动生成代码(新)Wrapper的使用本文在SpringBoot项目中MybatisPlus的使用一文基础上修改,升级为springboot的2.1.0.RELEASE版本。一、自动生成代码1、mysql数据库在SpringBoot项目中MybatisPlus的使用中已经有了详细的说明,但是在springboot的2.1.0.RELEASE版本下会报错,需要修改以下...
2019-05-20 22:03:31
1184
原创 Docker安装Redis
文章目录一、Docker安装与启动安装启动说明二、安装Redis安装启动redis报错自定义配置文件启动查看状态测试连接三、Docker常用简单命令以下操作均在虚拟机CentOS7中一、Docker安装与启动安装通过以下命令查看内核版本为3.10,支持dockeruname -r3.10.0-693.el7.x86_64安装一些必要的系统工具和添加软件源信息sudo yum...
2019-04-25 22:52:31
974
1
原创 OpenJDK8u中intern()方法实现
文章目录OpenJDK源码下载native关键字intern方法实现oop-klass模型StringTableStringTable::intern总结OpenJDK源码下载Java中String类的intern方法是一个native方法。 /** * Returns a canonical representation for the string object. ...
2019-04-08 19:16:10
662
原创 分享:掘金酱技术精华汇总
开始于20190322,更新至20190323前言本文分享一下个人收藏掘金上优秀的技术文章,链接直接指向原文地址,侵删。日积跬步,终至千里Java基础Java泛型深入理解 Java 泛型Oracle官方文档...
2019-03-23 11:20:05
1224
原创 Java8关于Stream的收集器和Collector接口
从Stream类中的collect作为本文的开始。现在有一个装有Frog对象的List集合,从这个list中将frog对象的size值提取成一个新的集合,可以通过如下方法实现:List&amp;amp;amp;lt;Double&amp;amp;amp;gt; sizeList = frogList.stream() .map(Frog::getSize) .collect(...
2019-03-08 23:41:05
605
原创 java.lang.Error: Unresolved compilation problem解决方法
错误描述:之前在jdk1.8环境下开发,现在需要为另一个jdk1.4环境下的项目修改代码,本地调试过程中出现java.lang.Error: Unresolved compilation problem报错。我的解决方法:1 首先安装jdk1.4,并配置环境变量。我的安装路径:C:\jdk4\j2sdk1.4.1_04环境变量配置:依次在本机上点击(win10)控制面板\系统和安全\系统\...
2019-03-07 09:34:40
97873
3
原创 SpringBoot项目通用返回值与全局异常处理(二)
SpringBoot项目通用返回值与全局异常处理 文中使用@RestControllerAdvice注解的MyExceptionHandler类完成对异常的统一处理。比如:在Controller中如果对入参校验不通过时直接throw一个自定义异常,然后这个异常会被捕获,会执行MyExceptionHandler类中的handleException()方法,打印日志并组装统一返回格式给调用者。视乎没...
2019-03-01 10:32:50
588
4
原创 Spring使用小笔记
最近又在重新学习Spring,主要基于《Spring实战》这本书以及官方最新文档来学习。Spring框架的核心模块还是很多的,就使用方面来说,将项目实际使用或者可能遇到的问题记录在下面。动态切换数据源(AOP)文章示例使用springboot+mybatis实现多数据源配置,AOP注解进行动态切换。使用这种思想也可以实现读写分离。不修改已有类的情况下为其或子类增加方法(AOP)示例1 ...
2019-02-20 10:04:34
143
原创 屏蔽优快云广告最佳方法
快到春节了,分享点实用的东西。话不多少上东西!屏蔽网页中广告经常在优快云看博客,被广告烦的够呛。打开火狐浏览器的插件(直接在地址栏输入about:addons),在寻找更多扩展中搜索:uBlock Origin就是它,安装之后启用它,再次浏览网页时发现那些小弹框广告都没了,不仅优快云,每个网页都变得清爽了。如果遇到没有屏蔽的还可以右键选中这个html元素,选择屏蔽元素就可以了。解...
2019-01-31 18:12:18
1185
原创 java8函数式编程(四)
相关链接:java8函数式编程(一)java8函数式编程(二)java8函数式编程(三) 其中(一)是在没有开始了解java8新特性之前实际遇到的一个问题,使用for循环实现的代码很繁琐,于是尝试使用新的编码风格,最后很不完美的实现了需求。在进一步学习后,在(二)中完美实现,并对List常用的操作做了一个总结。最后在(三)中对并行化流与并行化数组的操作简单归纳。 本节主要是对java...
2018-12-06 18:37:32
240
原创 java8时间API
创建 LocalDate localDate = LocalDate.now(); // 2018-11-22 LocalTime localTime = LocalTime.of(2, 20, 30); // 02:20:30 LocalD...
2018-11-22 20:44:34
220
转载 Redis持久化机制
参考:博主:Orbita_wangtaohttps://blog.youkuaiyun.com/qq_36178899/article/details/84328004说的很详细
2018-11-21 19:24:20
149
原创 HTTP转义字符
空格 ---- %20" ---- %22# ---- %23% ---- %25& ---- %26( ---- %28) ---- %29+ ---- %2B, ---- %2C/ ---- %2F: ---- %3A; ---- %3B< ---- %3C= ---- ...
2018-11-13 21:04:55
5814
原创 Maven命令安装jar包到本地仓库
MAVEN1.下载maven的zip包后解压2.配置环境变量MAVEN_HOME=解压文件夹位置PATH=%MAVEN_HOME%\bin安装JAR包到本地仓库1 jar包的位置2 打开cmd,输入以下命令mvn install:install-file -Dfile=D:\apache-maven-3.5.4\bin\finger-1.0-SNAPSHOT.jar -Dgr...
2018-11-06 18:02:56
397
原创 Redis5.0的安装
安装下载、解压、编译(CentOS 7)# wget http://download.redis.io/releases/redis-5.0.0.tar.gz# tar xzf redis-5.0.0.tar.gz# cd redis-5.0.0# make编译时报错,关于gcc的,需要下载gcc# yum install gcc下载后将刚才解压的文件夹删除,重新解压编译即可...
2018-10-22 20:03:56
22697
3
原创 SpringBoot中AOP的使用
导入依赖在pom文件中加入如下依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>LogAOP创建一个日志切面,...
2018-10-16 23:15:44
201
原创 SpringBoot定时任务
开启定时任务创建一个定时任务配置类,加上@EnableScheduling注解,也可以直接加在启动类上。@EnableScheduling@Configurationpublic class ScheduledConfig {}创建自定义任务下面两个任务,都只打印当前时间,启动程序测试即可@Componentpublic class PrintTimeJob { //...
2018-10-15 12:08:21
167
原创 SpringBoot事物管理
使用Controller@RestController@RequestMapping("/transaction")public class TestTransactionController { @Autowired private TestService testService; @RequestMapping(value = "/test", method...
2018-10-10 16:22:56
891
原创 java8函数式编程(三)
并行化流操作如果已经有一个Stream对象,调用parallel方法即拥有并行操作的能力boolean b = Stream.of("z", "s", "c"). parallel(). isParallel();集合通过调用parallelStream方法创建一个并行能力的流List&lt;Fro
2018-10-09 14:53:07
237
原创 java8函数式编程(二)
List常用操作准备数据 private static List&lt;Frog&gt; init() { List&lt;Frog&gt; list = new ArrayList&lt;&gt;(); list.add(new Frog("a", 2 , "red", 5.1));
2018-10-08 18:44:26
215
原创 SpringBoot注解校验请求参数
常规校验 @RequestMapping( value = "test", method = RequestMethod.POST) public FrogTest test(@RequestBody FrogTest bean) { if (bean.getName() == null) { ...
2018-10-08 09:50:58
16013
原创 java8函数式编程(一)
需求将List集合中选出每种颜色相同的元素中size最大的元素,将这些元素组成一个新集合。List<Frog>public Frog(String name, Integer age, String color, Double size, String desc) { this.name = name; this.age = age; ...
2018-09-29 23:59:19
263
原创 SpringBoot项目通用返回值与全局异常处理
SpringBoot项目通用返回值与全局异常处理目前很多公司开发时候都是前后端分离,后台给前端如果能返回一个统一的格式,统一接口报文格式,开发效率都会大大提升。定义一个通用返回结果的类Resultpublic class Result&amp;amp;lt;T&amp;amp;gt; { /** * 成功标志 */ private boolean success = true...
2018-09-21 11:05:01
2035
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人