随笔分类 - Java
摘要:因为某些国家的进口管制限制,Java发布的运行环境包中的加解密有一定的限制。比如默认不允许256位密钥的AES加解密,解决方法就是修改策略文件。 对于Java 8 Update 144和更早版本,需要安装Java密码学扩展(JCE)无限强度管辖权策略文件: 从此处下载无限强度的JCE策略文件 解压缩
阅读全文
摘要:环境: JDK8 、MYSQL 5.7.17 、Spring boot 2.1.6 、Druid - 1.1.10 的jar包; 使用 druid-1.1.10.jar 报错如下; 3月 25, 2020 7:55:37 下午 com.alibaba.druid.pool.DruidDataSour
阅读全文
摘要:方法1 使用 @SpringBootApplication 注解,用 exclude 属性进行排除指定的类: @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) public class Application
阅读全文
摘要:JDK内置工具使用 一、javah命令(C Header and Stub File Generator) 二、jps命令(Java Virtual Machine Process Status Tool) 三、jstack命令(Java Stack Trace) 四、jstat命令(Java Vi
阅读全文
摘要:一、引子 对于互联网公司,线上CPU飙升的问题很常见(例如某个活动开始,流量突然飙升时),按照本文的步骤排查,基本1分钟即可搞定!特此整理排查方法一篇,供大家参考讨论提高。 二、问题复现 线上系统突然运行缓慢,CPU飙升,甚至到100%,以及Full GC次数过多,接着就是各种报警:例如接口超时报警
阅读全文
摘要:背景 在企业发展初期,企业使用的系统很少,通常一个或者两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登录,很方便。但随着企业的发展,用到的系统随之增多,运营人员在操作不同的系统时,需要多次登录,而且每个系统的账号都不一样,这对于运营人员来说,很不方便。于是,就想到是不是可以在一个系统登录
阅读全文
摘要:1. 什么是RSA RSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法。在了解RSA算法之前,先熟悉下几个术语 根据密钥的使用方法,可以将密码分为对称密码和公钥密码 对称密码:加密和解密使用同一种密钥的方式 公钥密码:加密和解密使用不同的密码的方式,因此公钥密码通常也称为非对称
阅读全文
摘要:一、背景 我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如: 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱; 发送消息,也应该只发一次,同样的短
阅读全文
摘要:首先我把异常分为两种,一种是可控制的,或者是由我们发现条件不正确主动抛出的异常,就像前城市编号不存在那个粟子;另一种是不可控制的,或者说是程序存在bug引起的异常,但这种异常也不想变态的就直接给前端抛出个500异常。 实现步骤如下: 第1步,新建一个Exception类 新建一个 DescribeE
阅读全文
摘要:SwaggerUI作用:1.所有接口方法可以动态的生成API文档,开发无需手动编写文档2.研发可以直接点击对应接口完成自测3.测试人员可以测试。 pom.xml文件添加依赖 创建swagger配置类 我们在使用SpringBoot集成Swagger2中,访问:http://localhost/swa
阅读全文
摘要:最开始想到的是通过硬编码的方式手动在每个路径上加上前缀, 后面发现这种方式太不智能了,万一要修改那还不得改死, Spring既然支持EL表达式, 那能不能通过EL表达式的方式去读取配置文件里面的属性来达到引用的目的呢? 在配置文件中定义动态动态改变的路径 在Controller通过EL表达式引入该变
阅读全文
摘要:Sharding-JDBC中的分片策略有两个维度,分别是: 数据源分片策略(DatabaseShardingStrategy) 表分片策略(TableShardingStrategy) 其中,数据源分片策略表示:数据路由到的物理目标数据源,表分片策略表示数据被路由到的目标表。 特别的,表分片策略是依
阅读全文
摘要:spring boot 的相关404页面配置都是针对项目路径下的(如果配置了 context-path) 在context-path不为空的情况下,如果访问路径不带context-path,这时候会显示空白页面或者是tomcat默认404页面 这时候如何自定义内置tomcat的404页面呢? 查看t
阅读全文
摘要:概述 分布式id生成算法的有很多种,Twitter的SnowFlake就是其中经典的一种,SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图: 1位,不用。二进制中最高位为1的都是负数,但是我们生成的id一般都使用整数,所以这个最高位固定是0 41位,用来记录时间戳(毫秒
阅读全文
摘要:简介 Sharding-JDBC 定位为轻量级Java框架,在Java的JDBC层提供的额外服务。 它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。 适用于任何基于Java的ORM框架,如:JPA, Hibernat
阅读全文
摘要:引入依赖 我们使用maven构建springboot应用来进行demo演示。 我们只需要引入spring-boot-starter-web依赖即可,如果查看其子依赖,可以发现如下的依赖: 验证了我之前的描述,web模块使用了hibernate-validation,并且databind模块也提供了相
阅读全文
摘要:CSRF 背景与介绍 CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一。其他安全隐患,比如 SQL 脚本注入,跨站域脚本攻击等在近年来已经逐渐为众人熟知,很多网站也都针对他们进行了防御。然而
阅读全文
摘要:有5只猴子在海边发现一堆香蕉,决定第二天来平分,第二天清晨,第一只猴子最早来到,它左分右分分不开,就朝海里扔了一只,恰好可以分成5份,它拿上自己的一份走了。第2,3,4,5只猴子也遇到同样的问题,采用了同样的方法,都是扔掉一只后,恰好可以分成5份,问这堆香蕉至少有少只? 方式一 方式二 反推验证 至
阅读全文
摘要:读多写少的场景下引发的问题? 假设现在我们的内存里有一个 ArrayList,这个 ArrayList 默认情况下肯定是线程不安全的,要是多个线程并发读和写这个 ArrayList 可能会有问题。 那么,问题来了,我们应该怎么让这个 ArrayList 变成线程安全的呢? 有一个非常简单的办法,对这
阅读全文
摘要:CopyOnWrite 思想在 Kafka 源码中的运用 在 Kafka 的内核源码中,有这么一个场景,客户端在向 Kafka 写数据的时候,会把消息先写入客户端本地的内存缓冲,然后在内存缓冲里形成一个 Batch 之后再一次性发送到 Kafka 服务器上去,这样有助于提升吞吐量。 请看下图: 这个
阅读全文

浙公网安备 33010602011771号