自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

811

  • 博客(56)
  • 资源 (11)
  • 收藏
  • 关注

原创 log4j2 远程代码执行漏洞

本地稳定复现 无效的措施3台机器2win 1linux提供思路 关闭lookup将log4j.xml里面的 %m %msg %message替换为%message{nolookups}%msg{nolookups}%m{nolookups}

2021-12-10 17:37:10 5381

原创 Spring boot Filter无法注入redisTemplate

看了好多大佬的文章,并没有很好的解决问题。描述一下版本 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> </parent>

2020-12-19 23:52:13 1627 3

原创 thymeleaf 引入共通静态文件

thymeleaf 引入共通静态文件实现方式有很多,记录一下个人觉得最舒舒服的方式在templates静态模板下建一个静态的共通片段common_header.html代码如下<!DOCTYPE html><!--suppress ALL--><html lang="en"><html xmlns:th="http://www.thymeleaf.org"><head th:fragment=header(title)&g

2020-11-13 10:35:25 368

原创 LRU的实现(根据LinkedHashMap)

public class LRUCache<K, V> extends LinkedHashMap<K, V> { private static final long serialVersionUID = 8133043885074421707L; private final int CACHE_SIZE; public LRUCache(int cacheSize) { //true 访问多的移动到链表尾部 false插入顺序 super((int) Math.

2020-10-19 11:44:22 189

原创 jvm GC 各个分代内存大小配置

回忆一下日志工具上网搜下各分区的大小对GC的性能影响很大。如何将各分区调整到合适的大小,分析活跃数据的大小是很好的切入点。活跃数据的大小是指,应用程序稳定运行时长期存活对象在堆中占用的空间大小,也就是Full GC后堆中老年代占用空间的大小。可以通过GC日志中Full GC之后老年代数据大小得出,比较准确的方法是在程序稳定后,多次获取GC数据,通过取平均值的方式计算活跃数据的大小。活跃数据和各分区之间的比例关系如下总堆:3-4倍老年代活跃数据大小新生代:1-1.5倍老年代跃数据数据.

2020-08-14 14:10:49 709

原创 缓存穿透及解决方案

一般我们在做一个对象缓存的时候会经历以下步骤 redis为例1.客户端传入唯一键2.进redis查 如果有直接返回3.如果有的话,查数据库并放入缓存假如现在我们收到一个空值或者-1的唯一键,空很好处理,但是-1是一个泛型,相当于传入了一个数据库里不可能存在的值,数据库中不存在的对象,那么在redis中也不可能存在。那么将导致每次都会查数据库,遇到DDos很容易将数据库查崩溃。...

2019-08-24 17:56:40 140

原创 关于静态编译引发的问题NoSuchException

发生的环境 jdk7 tomcat7问题描述。1.改了一个实体类A中某一个成员变量的类型,以及受影响的引用的修改。2.但是其中一个B类引用了实体类A,但是情况特殊,并没有受到影响报错,就没有修改该类。3.因为迟迟不能上线,现在要对B类进行修改,修改过后,将B类的class文件单独打包上服务器。启动正常,调用修改过A类变量的时候报错。4.也就是说实体类A在服务器上还是旧的,但是有...

2019-08-18 14:23:12 415

原创 sonar扫描非mavne项目 普通的java项目

环境 jdk.18sonarqube 6.7将sonar-scanner-cli-3.0.3.778-windows解压到目录配置环境变量的系统变量Path配置上面解压目录到bin目录cmd 检查sonar-scanner -v看看是否配置成功扫描cmd cd到要检测的项目中如从 cd d:/work/fundserviceAdd然后执行如下命令s...

2019-07-09 19:19:46 2012 1

原创 sonar登陆后显示项目不正常(现象少项目)

成因sonar曾经连接过两个数据库,导致项目启动时候会生成两份es索引文件,会影响到sonar的正常显示解决停掉项目D:\811\sonarqube-6.7.7\data\es5\nodes\0 删除该目录下的所有文件重启项目...

2019-07-09 09:46:12 1255 1

原创 svn: warning: 'xxxxx' is already under version control svn不能提交

百度普遍给出的解决方案是将.svn删除后再从新连接svn我按照操作后还是会出现already under version control如果和我一样请检查svn的接口配置是否正常windows>preferences>team>svn...

2019-07-03 14:27:52 1566

原创 Postman 测试Xfire webservice

代码&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pm="http://www.excute.com/"&gt; &lt;soapenv:Header&gt;&

2019-03-12 09:50:08 876

原创 jacoco 覆盖率测试和报告

写完代码先自测一下web项目或者接口一般先跑findbug,再跑jacoco。其实我一直在寻找一个在浏览器里面操作web项目,ide里面的代码颜色就会告诉你哪一行执行过,哪一行没有执行过。还在研究中,有用过这样插件的或者有这样想法的可以私信我。因为不是专业测试,懒得写测试case,jacoco可以省心很多。在代码业务比较繁琐的时候,可以在web中直接操作所有的功能,jacoco就可...

2019-02-21 16:33:36 2394

原创 使用postman post提交的参数中文乱码

要是post请求把参数放在body里面  因为之前偷懒,把参数链接直接拷贝到地址栏,params哪一个Tab选项卡中的key和value就会自动补齐。尴尬

2019-02-20 17:02:40 10897 3

原创 PKIX path building failed

主要是htpp和https 协议的问题之前项目里面用的PostMethod org.apache.commons.httpclient.methods.PostMethod 包下面的用PostMethod进行post提交就会遇到PKIX path building failed ,这个需要把对应的ca证书放到jdk下面大概,具体操作可以百度也可以使用 org.apache.http.c...

2019-01-11 18:42:55 658

原创 crypto-js加密对接jdk SecretKeyFactory解密 小程序使用

jdk1.7.0_15问题描述已经在用的接口服务器,接收另一个web端传来的des对称加密的信息,然后接口解密再进行处理。最近小程序上线,也需要调用改接口,需要用js进行参数加密进行接口调用。如果上述第一种情况,都可以使用java 的SecretKeyFactory进行参数加密解密那么如何使用js进行des的参数对称加密首先要搞明白SecretKeyFactory关键的加密方法,如下图指定为des...

2018-05-11 17:20:21 1480

原创 No live SolrServers available to handle this request

环境描述jdk:1.7solr:4.10.1zookeeper:3.4.7搭建的solrcloud 集群因为原来项目里面使用的就是solr 4.10.1 为了系统稳定 没有采取对solr进行版本升级。问题现象问题1:为了方便,只建了一个shard,然后一主一备当你同时启动两台tomcat的时候,8081和8082的时候。启动成功后,发现两台tomcat不在一个集群里,登录8081显示8082为Go...

2018-04-17 17:56:54 6696 5

转载 记录下数据库备份 不保证能用

数据库一般备份命令:[html] view plain copy//        1.导出结构不导出数据  //        mysqldump --opt -d 数据库名 -u root -p &gt; xxx.sql  //        2.导出数据不导出结构  //        mysqldump -t 数据库名 -uroot -p &gt; xxx.sql   //        ...

2018-03-02 09:54:22 194

原创 java 在linux环境中的缺省字体

Font mFont = new Font("'Microsoft Yahei", Font.PLAIN, 30);这种一般就是就文字输出到图片的时候会用到,看到我们在实例化的时候指定使用微软雅黑字体。但是在linux默认是没有微软雅黑的。这样导致本地测试环境和生产环境字体不一致,也导致字体大小不一致,影响图片的微调。也可以在实例化完font对象以后使用getFontName();

2018-01-25 11:07:24 1631

原创 mac os Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql'

该错误是出现在mac os上,其他系统可以参考。mac os每次系统升级都会发生一些很搞笑的事情。这次升级导致mysql服务启动失败。在偏好设计》mysql 打开的面板上会显示mac os Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql'在终端上运行mysql会...

2018-01-08 22:05:50 612

原创 深入理解post和get请求。

最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。HTTP协议是基于TCP/IP协议的。所以GET和POST的底层也是基于TCP/IP协议,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET加上request body,给POST带上url参数,技术上是完全行的通的。get请求长度问题就不说了。没啥意思、GET和PO

2017-12-29 11:06:17 1186

原创 No outbound converter found for XXX

No outbound converter found for XXX 这是DWR抛出的一个错误。 原因是因为你在DWR的服务层return了一个对象。所以要在dwr.xml中声明该对象。 <convert converter="bean" match="com.XXX.entity.Shops"> <param name="include" value="id,spType"

2017-12-08 14:13:06 1983

转载 jquery 序列化表单对象

实例输出序列化表单值的结果:$("button").click(function(){ $("div").text($("form").serialize());});定义和用法serialize() 方法通过序列化表单值,创建 URL 编码文本字符串。您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素本身

2017-10-19 14:57:28 395

原创 java 反射比较两个类型相同的对象 内部的变量是否相等

反射遍历System.Reflection.PropertyInfo[] mPi = typeof(InfoModel).GetProperties();                for (int i = 0; i                 {                    System.Reflection.PropertyInfo pi = mPi[

2017-10-19 14:41:10 2704

原创 关于静态变量编译的问题

在更新web的时候,我们往往只去替换修改过的class。但是,遇到修改静态变量(String的值),则会出现问题。 例如public class A{ private static String TEXT= "之前的";}public class B{ public void out(){ System.out.print(A.TEXT); }}这样在

2017-07-30 16:44:02 626

原创 Linux下修改tomcat JVM内存大小

Linux下修改tomcat JVM内存大小:要添加在tomcat 的bin 下catalina.sh 里,位置cygwin=false前 。注意引号要带上,红色的为新添加的.#OS specific support. $var_must_ be set to either true or false.JAVA_OPTS="-Xms256m -Xmx512m -Xss1

2017-07-06 10:22:05 2403

原创 Spring MVC + Mbatis + RabbitMQ 整合(2)

接下来该配置我们的工程 首先附上pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://mav

2017-06-30 19:24:59 6014 9

原创 Spring MVC + Mbatis + RabbitMQ 整合(1)

首先说一下RabbitMQ的配置安装好RabbitMQServer之后访问http://localhost:15672/开始首先在Admin tab选项中新建一个vh,这个Name需要在后期的代码配置中用到。 之后需要给该VH配置一个权限 然后配置交换 选择Exchanges tab 将Exchanges与刚才建立的VH绑定 然后命名一个交换名字,这个名字在后期的代码配置中会用到 新建一

2017-06-30 19:06:43 2208 2

原创 invalid comparison: com.XXX.shop.util.PageUtil and java.lang.String

invalid comparison: com.XXX.shop.util.PageUtil and java.lang.String今天重构别人的代码的时候发现每一个list页面都会出现invalid comparison: com.XXX.shop.util.PageUtil and java.lang.String 大概就是说有错误的比较类型吧,查了一下mapper映射文件原代码<if te

2017-06-30 14:06:36 590

原创 Java 虚拟机 GC 的过程

1)大多数对象在创建后很短的时间内就会没有任何对象再使用它了,即未被其它对象引用。 2)大多数一直被使用的对象(老对象)很少引用新创建的对象。 绝大部分对象的创建后是被放到eden区,为什么说是绝大部分,因为会有一些对象创建后直接被old区区。 因为在eden区全部都是新生对象,所以大部分对象会很快失去引用 。被回收后会获得大量的空间。 当经历了一次回收后红色的被回收

2017-06-13 22:32:50 1799

原创 LinkedList运行原理

LinkedList和ArrayList都闲了List接口。因为LinkedList基于链表结构,所以插入,删除某一个节点会比ArrayList效率高,但随即访问某一个元素,效率不如ArrayList。 因为是链表结构,所以在初始化的时候不需要连续的内存,只需要见缝插针,记录next,prev就可以。所以在空间复杂度上比ArrayList强。//LinkedList的Add过程 public b

2017-05-17 15:40:40 262

原创 ArrayList的基本工作原理详解remove

其实remove(index),add(index,e)类似去操作下标增加或者删除的。其实用ArrayList挺费劲的。 下面就看看费劲在哪。 拿remove来说 public E remove(int index) { //第一步先判断是否有越界,如果越界直接IndexOutOfBoundsException rangeCheck(index);

2017-05-16 12:02:38 1344

原创 ArrayList的基本工作原理详解add

ArrayList其实就是一个长度可变的数组,看源码就是知道,就是是一个Object[]。 ArrayList是unsynchronized。 因为底层由数组承载,那么需要连续的内存空间,所以空间复杂度是O(n)。 如果按下标直接去get(index)或者直接add(e)到数组的尾部,那么时间复杂度是O(1)。 如果要remove(index),或者add(index,e)那么时间复杂度为O

2017-05-16 11:09:44 4492

原创 为什么Set会去重

Set之所以会去重,和map有很大的关系。 看源码你会发现HashSet底层使用HashMap存储 TreeSet底层使用TreeMap存储 LinkedHashSet底层使用LinkedHashMap存储拿HashSet为例子,我们查看add()方法的源码 public boolean add(E e) { return map.put(e, PRESENT)==null;

2017-05-15 17:34:31 5826 2

原创 HashMap工作原理

首先看源码 /** * An empty table instance to share when the table is not inflated. */ static final Entry<?,?>[] EMPTY_TABLE = {}; /** * The table, resized as necessary. Length MUST A

2017-05-15 17:18:20 242

原创 org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe

org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:396) at org.apache.tomcat.uti

2017-05-11 11:53:12 1363

原创 CountDownLatch 计数器门闩

我只能说中华文化博大精深,最开始的时候还是不认识闩字的,百度了一下, 闩[shuān]。 从型上分析,就是门上插把棍子,锁住什么东西。CountDownLatch 就是把线程关起来,不许出来,得先干完活。CountDownLatch 计数器门闩/** * CountDownLatch 计数器门闩 * 该任务是如果完成了5个任务,那么才去执行发工资的事情 * * @author be

2017-04-28 09:15:22 240

原创 ReentrantReadWriteLock 读写锁

/** * 读写锁ReentrantReadWriteLock * 读写分离可以有效地减少锁的竞争 * 在ReentrantLock中如果给读线程加锁,那么写线程就需要等待 * 给写线程加锁,那么读线程就得等待 * 这显然是不合理的,因为读操作不会对数据的完整性破坏。 * 所以在读的次数远远大于写的次数的时候,使用读写锁子 * @author beiyaoyao */public

2017-04-28 08:42:34 227

原创 Semaphore 允许多个线程同时访问

/** * * @author beiyaoyao */public class SemaphoreDemo implements Runnable { //设置有几个线程可以进入执行的代码段 final Semaphore semaphore = new Semaphore(5); @Override public void run() {

2017-04-27 16:23:33 381

原创 java的线程生命周期

定义了一个枚举类型,Thread.State,主要是来阐述一个线程在生命周期的各个阶段的状态。 NEW:线程被实例化,但并未.start(); RUNNABLE:线程正在运行; BLOCKED:线程中止运行,因为在等待获得一个锁,以便进入声明为Synchronized的方法或者代码块; WATING:线程中止运行,因为他调用了Object.wait()或者Thread.join(); TI

2017-04-27 15:43:57 176

原创 Condition

** * Condition 条件 * 利用Condition对象,可以让线程再合适的地方时间等待,活在某一个条件下得到通知,继续执行。 * @author beiyaoyao * */public class ReenterLockCondition implements Runnable { public static int i = 1; //重入锁 publ

2017-04-27 15:39:52 207

GeoLite2-City.mmdb IP数据库更新于2021-03-23

GeoLite2-City.mmdb IP数据库更新于2021-03-23

2021-03-24

sonar-scanner-3.0.3.778-windows.zip

这个是没有bug版本 可用 介绍地址 https://blog.csdn.net/u013177381/article/details/95226414

2019-07-10

jacoco获取exec和获取report

jacoco获取exec和获取覆盖率html的report,maven项目,pom文件没配置,自己搞一下

2019-02-21

Redis-desktop redis管理工具 支持SSH 无bug版

Redis-desktop redis管理工具 支持SSH,SSL,Advanced sessting 无bug版

2018-12-12

谷歌浏览器插件伴侣

谷歌浏览器插件伴侣,新版的谷歌不支持离线安装插件,用这个就可以离线安装

2018-10-26

crypto-js des加密对接jdk SecretKeyFactory解密

js加密后形成的密文base64和hex码大写都进行了展示。为什么要50字节?

2018-05-11

fvd downloader 谷歌浏览器插件 下载视频

下载网页上的视频,包括批量下载并组合.ts文件。内有文档

2018-05-11

1 zookeeper-3.4.7.tar.gz

windows linux 都可以安装,解压后将cof文件夹里的zoo_sample.cfg 改为在zoo.cfg。在cmd命令里进入bin目录,zkServer.cmd 执行即可启动

2018-04-11

myeclipse svn插件以及安装说明

myeclipse svn插件以及安装说明

2017-06-28

rabbitmq-server-mac-standalone-3.5.3

rabbitmq mac 版的本地安装,内附带教程。

2017-06-28

mysqlworkbench 免安装版本 付配置说明

mysqlworkbench 免安装版本 付配置说明

2017-06-27

空空如也

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

TA关注的人

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