自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dongguabai的博客

【欢迎关注公众号:冬瓜白】记录不知道的事,技术不分高低难易;掉不尽的底子玩不尽的味...

原创 Mac 屏幕色温一直变化

早上发现屏幕色温一直变化,找了好久,发现需要设置“关闭原彩显示”,这里记录下:

2020-05-29 09:36:20 0

原创 BeanDefinitionStoreException: Failed to read candidate component class: URL [jar:file:/

今天处理一个历史老项目的时候,我修改了一个类,出现了这样的异常: [INFO]2020-05-28 15:27:48 [main] org.springframework.context.annotation.ClassPathScanningCandidateComponentProvide...

2020-05-28 15:36:52 7 0

原创 自己动手调试 JDK(CLion)

相关文章 从 Java 程序优雅停机到 Linux 信号机制初窥 自己动手编译 JDK(MacOS) 昨天已经可以自己编译 JDK 了。但是很明显还缺一个重要的环节,那就是调试 JDK。调试 JDK 有朋友说可以使用 GDB,但是对于我们应用层开发者来说,使用 IDE 进行调试可能会习惯点,而...

2020-05-28 14:34:25 20 0

原创 自己动手编译 JDK(MacOS)
原力计划

相关文章 从 Java 程序优雅停机到 Linux 信号机制初窥 去年就尝试过自己编译 JDK,但是失败了,最近在分析 Java 虚拟机是如何处理 Linux 信号的时候,虽然大体流程清晰了,但是还是有很多方面无法理解,所以编译调试 JDK 势在必行。 我的操作系统版本:macOS Cata...

2020-05-27 16:21:03 26 0

转载 Dubbo 源码构建

代码签出 通过以下命令可以签出最新的项目源码 git clone https://github.com/apache/dubbo.git dubbo 也可以在也可以直接在https://github.com/apache/dubbo上浏览源代码 分支 我们使用master作为主干版本...

2020-05-26 09:26:43 23 0

转载 JVM安全退出(如何优雅的关闭java服务)

上线!重启!你还在为丢失任务而烦恼么?看这里看这里,从此不再丢任务,JVM可以安全退出的 在交易流程中,为了提升服务的性能,我们做了一些异步化的优化,比如更新用户最近使用的收货地址、提单完成后通过MQ去发送各种通知类消息、清理用户的购物车等等这些操作,异步化加快了应用的响应速度同时也带来一个隐患...

2020-05-24 02:02:19 54 0

原创 从 Java 程序优雅停机到 Linux 信号机制初窥
原力计划

前不久,公司内部使用的一个 RPC 框架支持了优雅退出。优雅退出是很多框架非常重要的特征,在 Java 中是使用 Runtime.addShutdownHook 方法去注册关闭的钩子(Runtime 类代表了当前 JVM 进程的运行环境)。 The Java virtual machine sh...

2020-05-24 01:57:06 28 0

转载 Linux 中 dig 命令返回结果解释

dig baidu.com 返回 下面说明各项意义: ; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> baidu.com ;; global options: printcmd dig程...

2020-05-23 00:53:05 28 0

原创 Socket 基础之超时时间

平时经常会听到“连接超时”、“Socket 超时”,那么到底是什么超时呢。以我们目前内部使用的调度任务为例,有时候会收到这样的调度异常邮件: 在 xxxx,Exception to request execution plan:java.net.SocketTimeoutException:con...

2020-05-23 00:36:12 52 0

转载 关于IDEA 报Error:java:无效的源发行版13

很多相关的编译异常都可以按照这个方法处理。 -------------------------------------------------------- 首先打开自己的项目,点击File–>Settings进入界面找到如图位置 并将相信应位置设置成自己的安装版本号, 以我为列:1....

2020-05-22 09:35:55 55 0

转载 MySQL 创建表的时候,添加字段注释

#创建表的时候写注释 CREATE TABLE userinfo( id INT COMMENT '编号', uname VARCHAR(40) COMMENT '用户名', address VARCHAR(120) COMMENT '家庭住...

2020-05-21 13:40:58 37 0

原创 Java 线程 UncaughtExceptionHandler 异常处理机制
原力计划

先看一个例子: public static void main(String[] args) { try { new Thread(() -> { int i = 1/0; }).start();...

2020-05-21 13:01:38 43 0

原创 关于 Spring 中的 FactoryBean
原力计划

一般我们会使用如 XML、@Bean、@Componet 等方式去注册,但是如果在 Bean 的实例化过程非常复杂,如有很多逻辑处理、层层依赖、复杂依赖等,这在第三方整合的时候尤为重要。FactoryBean 是 Spring 提供的基于接口编码的方式帮助我们向 Spring 容器中注册组件,相比...

2020-05-20 12:43:21 46 0

转载 Spring 用了哪些设计模式?

1. 策略模式 2. 工厂方法模式 3. Builder模式 4. 小结 关于设计模式,如果使用得当,将会使我们的代码更加简洁,并且更具扩展性。本文主要讲解Spring中如何使用策略模式,工厂方法模式以及Builder模式。 1. 策略模式 关于策略模式的使用...

2020-05-15 22:07:57 26 0

转载 html 引入 icon 图标

http://www.iconfont.cn/ 我们引入icon都喜欢阿里的矢量图标库 阿里的图标库也是可以下载为图片的 当然下载图片不是我们想要的,我们想要的是字体 第一种方法,本地使用 首先我们选择自己想要的icon 添加入库 点击下载代码,会自动下载一个压缩文件,解压...

2020-05-15 21:52:10 118 0

原创 关于(历史)系统多租户设计的后续
原力计划

相关文章: ThreadLocal 系列之 TransmittableThreadLocal 基于 MyBatis 实现多租户数据隔离的实践 因为某些原因,临近上线前我们调整了方案,即使用多数据源的方案去对系统进行多租户改造,这也是《基于 MyBatis 实现多租户数据隔离的实践》中与各位伙伴...

2020-05-14 16:38:40 37 0

转载 Mac 下 Visual Studio 设置中文

macOS 快捷键:command + shift + p 输入搜索 configure language 1.Ctrl+Shift+P 打开命令 2.搜索 Configure Display Language 将这里的“en”(英文)改为“zh-CN”(中文) 我这里版本是1.27需...

2020-05-12 23:42:03 52 0

原创 设计模式之简单工厂模式

简单工厂模式也叫静态工厂模式,不属于 GOF 23 种设计模式。这个模式其实很简单,但是我觉得从这个模式中学到的最重要的是要逐渐锻炼出“设计模式”的思维,即不要仅仅局限在一个类上面。这时候就要想起那道经典的面试题了: 面向对象的三个基本特征? 封装、继承、多态 简单工厂模式就是将创建对象(产品...

2020-05-09 17:24:44 37 0

原创 简单使用 ZooKeeper 实现集群主备切换

昨天晚上看了一篇博客,作者实现了一个分布式的调度框架,其中支持两种集群模式,其中一种就是主备模式,是基于 ZooKeeper 实现的,这也是 ZooKeeper 很常见的应用场景,还没来得及看具体细节就去处理了一个线上问题,今天一直找不到那个博客链接。今天就尝试自己实现一下,本文会介绍两种实现方式...

2020-05-05 22:25:19 191 0

转载 关于Unable to read additional data from server sessionid 0x0问题的解决

今天搭建了一个zookeeper集群,分别为server1,server2,server3。 # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # s...

2020-05-05 18:30:17 134 0

原创 设计模式之模版模式

模版模式是我最喜欢的一个设计模式,也是最早尝试使用过的一个设计模式。根据《大话设计模式》中的描述: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 很关键的一点是算法,或者说函数的整体流程是不变的,但是部分流程是可...

2020-05-04 10:31:27 70 0

原创 设计模式之适配器模式
原力计划

突然想到一句话:“软件开发不存在兼容问题,如果有问题,那么再加一层”。 适配器模式应该是平时业务开发中无论是有意还是无意提到的比较多的一种设计模式。因为业务的变化是非常之快的,所以经常会出现“XXX 需要适配”一下,所以适配器模式也是个比较尴尬的模式,用的好,首先代码的复用性提高了,而且在对原有类...

2020-05-04 00:23:20 64 0

原创 设计模式之迭代器模式

在《大话设计模式》是这么描述迭代器模式的: 提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 这个描述有点文绉绉的,个人更喜欢后面的一段描述: 当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑迭代器模式。 为遍历不同的聚集结构提供如开始、...

2020-05-03 20:41:38 42 0

原创 理解 Spring Order 注解
原力计划

我们都知道 @Order 是控制优先级的,越小优先级越高,那么问题来了,是控制什么的优先级呢(虽然不能太“杠”,但是个人认为有时候还是得咬文嚼字)。有博客(相关链接见文末)的说法是“注解 @Order 的作用是定义 Spring 容器加载 Bean 的顺序”,其相关示例如下: 定义了三个 Bean...

2020-05-02 09:20:56 71 0

原创 Java Agent 的简单使用

在上一篇文章《每天学习一点点之 Spring 计时器 StopWatch》中简单提到了 Java Agent 可以做应用代码的无侵入,也跟朋友进行了讨论。在之前《ThreadLocal 系列之 TransmittableThreadLocal》中,有一个地方没有讨论到的就是 Transmittab...

2020-04-30 10:25:18 72 0

原创 Spring 计时器 StopWatch

有时候要测试某个东东的执行效率,每次都得写一堆 System.currentTimeMillis(),很显然一般会封装一下,避免重复造轮子,可以直接使用 Spring 提供的工具 StopWatch。其实在 Spring Boot 程序启动后都会打印的启动时间,也是基于这个类来的: 2020-04...

2020-04-25 21:23:30 51 0

转载 Java ArrayList toArray(T[] a) 解惑

先看一个小的代码片段 ArrayList<Integer> arrayList = new ArrayList<>(); Collections.addAll(arrayList, 11, 21, 31, 41, 51); ...

2020-04-25 17:58:13 40 0

转载 What is parent.relativePath used in maven pom.xml

在很多maven多模块化项目子模块中,我们经常能看到如下所示的代码。 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta...

2020-04-24 13:57:48 40 0

转载 Mixed Content: The page at 'xxx' was loaded over HTTPS, but requested an insecure resource 'xxx'.

HTTPS页面里动态的引入HTTP资源,比如引入一个js文件,会被直接block掉的.在HTTPS页面里通过AJAX的方式请求HTTP资源,也会被直接block掉的。 Mixed Content: The page at 'xxx' was loaded over HTT...

2020-04-22 21:44:45 110 0

转载 input 的 file 类型的 accept 属性的值

属性值 值 描述 audio/* 接受所有的声音文件。 video/* 接受所有的视频文件。 image/* 接受所有的图像文件。 MIME_type 一个有效的 MIME 类型,不带参数。请参阅IANA MIME 类型,获得标准 MIME 类型的完...

2020-04-22 18:09:21 70 0

转载 SpringBoot 打印 RequestMapping 信息配置

Spring Boot 2.1 之前的版本 Spring Boot 2.1 之前 使用INFO 级别记录的信息很多,所以只需要配置为INFO程序启动的时候就可以打印 RequestMapping 的信息,示例如下: logging: level: root: info 打印出...

2020-04-16 17:48:17 64 0

转载 Spring 中,定时任务接口 SchedulingConfigurer

Spring 中,创建定时任务除了使用@Scheduled 注解外,还可以使用 SchedulingConfigurer。 @Schedule 注解有一个缺点,其定时的时间不能动态的改变,而基于 SchedulingConfigurer 接口的方式可以做到。SchedulingConfigure...

2020-04-15 16:42:40 76 0

转载 使用动态代理,在Debug模式下,代理对象显示为null的分析

1、准备一个接口: 2、准备接口的实现类,类中重写接口的方法: 3、准备一个代理对象工厂,提供一个IService类型的成员变量,一个获取IService类型的代理对象的方法: 4、编写测试类,获取代理对象,调用被代理对象的find()方法 5、在代理工厂类中的获取代理对象...

2020-04-15 11:41:48 51 0

原创 小议 CSRF 攻击

CSRF(Cross-site request forgery),即跨站请求伪造,本质就是攻击者伪造你的身份发送请求。 攻击流程 在 Google 上找了一张流程图: 用户访正常登录访问 mybank.com 网站,登录成功后,mybank 服务端会产生 Cookie 信息给浏览器; 在用户不...

2020-04-14 22:17:59 32 0

原创 排查处理 Chrome 80 及以上版本用户登无法登录问题

早上用户反馈了一个比较严重的问题,系统无法登录了。异常信息如下: 首先系统已经正常运行了两个多月,登录这种问题一般会暴露地很快,而且上线后一般不会修改相关逻辑,查看 Git 记录,并未修改相关代码;随后也排除了认证系统的问题,因为如果认证系统出现问题,那整个公司都会受到影响,而并没有其他...

2020-04-14 22:13:49 182 0

转载 为什么 form 表单提交没有跨域问题

浏览器的策略本质是:一个域名下面的JS,没有经过允许是不能读取另外一个域名的内容,但是浏览器不阻止你向另外一个域名发送请求。 所以form表单提交没有跨域问题,提交form表单到另外一个域名,原来页面是无法获取新页面的内容,或者说form提交后不需要返回,但是ajax是需要返回的。 而ajax...

2020-04-14 18:53:10 43 0

转载 Cookie 的 SameSite 属性

Chrome 51 开始,浏览器的 Cookie 新增加了一个SameSite属性,用来防止 CSRF 攻击和用户追踪。 一、CSRF 攻击是什么? Cookie 往往用来存储用户的身份信息,恶意网站可以设法伪造带有正确 Cookie 的 HTTP 请求,这就是 CSRF 攻击。 举例来说,...

2020-04-14 18:20:35 67 0

转载 关闭Chrome浏览器的自动更新和升级提示

Windows下:   【计算机】->【管理】->【任务计划程序】->【任务计划程序库】中:     将“GoogleUpdateTaskMachineCore”、“GoogleUpdateTaskMachineUA”等相关项停止并禁用   【计算机】->【管理】-&...

2020-04-14 10:32:40 164 0

原创 Spring 手动注册之条件装配

Spring 条件装配有两种方式: @Profile:基于当前环境配置方式; @Conditional:基于编程方式; @Profile 先看一个例子: @SpringBootApplication public class ConditionBootstrap { public s...

2020-04-13 21:47:33 25 0

转载 Spring Boot 中 spring.profiles.include

我们有这样的一个springboot项目。项目分为开发、测试、生产三个不同阶段(环境),每个阶段都会有db、ftp、redis等的不同配置信息。我们可以使用spring.profiles.include来实现三种不同环境的一键切换。 项目总(入口)配置文件: bootstrap.yml ,内容...

2020-04-12 23:58:01 29 0

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