自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 springboot打包成war发布的坑

大家先来看下面两张图,一样的接口,查询时间波动很大:这个问题纠缠很久了,之前我做btr-open-web开放平台的时候就有遇到,后面想去查一下,但是后面开放平台没人用,就没动力去处理了。接着btr-srm-web也有这个问题,当时吴通大佬没找出来,我看到跟我之前遇到的一样。然后测试跟产品也反馈大概半年了,之前查了一下,没查到放弃了,也都能凑合用,一会才会慢一下,内部用,也一直没处理,拖到现在。思考:偶尔查询慢的问题,一开始怀疑的连接...

2020-06-11 11:16:55 204

转载 常量应该封装到常量类,常量接口,还是枚举类中?

前言之前项目中响应前台的接口中会用到一些公共常量。这个时候就比较纠结,常量到底是封装到哪里比较好呢,因为以前写的很多代码不怎么规范,而且有时候常量用到的不算太多太集中,所以就哪里用到哪个类上去声明一个出来,这样虽然很方便,但是统一维护起来,项目做大了,有些时候你要引用一个你记得你明明声明过的常量,却找半天都找不到,而且后期需要对常量中的内容进行一些修改的时候,维护起来也十分不方便,代码整体结构也...

2019-11-29 09:57:44 428

原创 CGLIB注解丢失原因浅析及解决办法

CGLIB动态代理后注解无法获取今天在开发中,使用了Srping的cglib,偶尔发现若开启CGLIB代理 spring.aop.proxy-target-class=true注入接口后无法获取其实现类上注解@service。通过debug得到class文件名含有EnhancerBySpringCGLIB:com.xxx.service.impl.xxxxImpl$$EnhancerBySp...

2019-11-29 09:39:32 2337

原创 zookeeper篇:源码导入idea

如何将zookeeper源码导入到Idea1.下载并安装AntAnt官网: http://ant.apach.org安装配置Ant在命令行窗口的任意目录下执行Ant –version命令,可以看到版本号,则说明Ant安装成功。mac版https://www.jianshu.com/p/34bdfb5943e02.构建Eclipse工程在命令行窗口中进入到zk解压目录,执行ant...

2019-11-04 12:30:21 898

原创 mybatis的sql拦截器应用

mybatis的sql拦截器应用前言在项目上线前的开发及调试中,都需要清楚的知道每条sql的用时来避免在生产环境出现慢查询,甚至对于业务逻辑较复杂的应用,还需防止大对象的产生(比如千万级别的集合),此时我们完全可以使用mybatis的sql拦截器来实现以上效果。下面是一个sql拦截器的简单记录,以加深印象。作用拦截器实现的功能有:拦截全表查询sql(可配置白名单) 防止大对象...

2019-11-01 14:56:48 522

转载 java的@PostConstruct

javax.annotation注释类型 PostConstruct@Documented@Retention(value=RUNTIME)@Target(value=METHOD)public @interface PostConstructPostConstruct 注释用于在依赖关系注入完成之后需要执行的方法上,以执行任何初始化。此方法必须在将类放入服务之前调用。支持依赖...

2019-08-12 16:12:47 345

转载 记录:创建idea插件Demo(简单的流程)

一、概述相信大家在使用Android Studio的时候,或多或少的会使用一些插件,适当的配合插件可以帮助我们提升一定的开发效率,更加快乐。例如:https://github.com/zzz40500/GsonFormat 可以帮助我们从Gson转化为实体类 https://github.com/avast/android-butterknife-zelezny 可以帮助我们更加方便的使...

2019-08-06 11:03:12 326 1

原创 springboot接入自定义AuthorizingRealm无法注入问题(null)

发生的原因是:自定义AuthorizingRealm上加上了@service等注解,不应该加,否则会出现“注入失败”(其实是被覆盖了)但能正常启动项目的问题,具体案例往下看。springboot配置shiro文件:shiroConfig.java这里已经返回一个beanName为“userAuthRealm”的UserAuthRealmUserAuthRealm.jav...

2019-06-18 21:26:42 2064

原创 下载jdk旧版本

http://www.oracle.com/technetwork/java/javase/archive-139210.html。进入链接,选择所要下载的jdk版本。

2018-09-27 11:16:38 1180

原创 idea 的项目管理, 生成iml

因为不明原因 导致,idea 会自动生成xxx.iml和xxx(1).iml,以后 导致发包时编译失败解决方法:打开maven管理,点击ignoreProjects后,子项目会被忽略,iml文件会被删除(两个都被删除了),再点unIgnoreProject(原来的位置),然后会重新自动生成iml。就只会生成一个了。如图:...

2018-09-04 13:53:21 7279 3

原创 ArrayList扩容过程

如果通过无参构造的话,初始数组容量为0,当真正对数组进行添加时,才真正分配容量。每次按照1.5倍(位运算)的比率通过copeOf的方式扩容。 在JKD1.6中实现是,如果通过无参构造的话,初始数组容量为10,每次通过copeOf的方式扩容后容量为原来的1.5倍,以上就是动态扩容的原理。扩展源码:private void grow(int minCapacity) { // overf...

2018-07-13 14:43:09 551

原创 JVMGC的过程

JVM GC只回收堆区和方法区堆有存放对象的两大区域,新生代和老年代,新生代又分成三个区域,一个Eden和两个Survivor区,默认空间比例是8:1:1。新实例的对象首先存放在Eden区,当Eden空间不足,则进行一个minorGC,将存活的对象放在其中一个Survivor中,并且每次minorGC对象年龄加一,当这个Survivor中空间不足,将进行minorGC时把存活的对象复制到另一个Su...

2018-07-06 11:53:39 961

原创 jvm类加载之双亲委派模型

双亲委派模型类加载是具有层次结构的,也就是父子关系,这种父子关系不是继承,而是通过组合来复用类加载的代码。Bootstrap 是所有类加载器的父亲。双亲委派模型的工作过程:每个类都有缓存,先判断自己的缓存有没有加载的此类,如果没有然后委托父类,父类再查询自己缓存,直到bootstrap ,还是没有,再由当前的类加载器加载,并将其放入它自己的缓存。这样设计的好处?主要为了安全性,避免用户自己编写的类...

2018-07-05 14:29:51 214

原创 JVM类加载的过程细节

类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。每个这样的实例用来表示一个 Java 类。通过此...

2018-07-05 11:07:50 926 1

原创 共享锁和悲观锁,与产生死锁的联系

共享锁(S):允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。一个用户①进行查询并加了lock in share mode,另一个用户②也可以进行查询并添加lock in share mode,但当用户①进行增改删操作时,需要获取所有的锁,所以会阻塞,当用户②进行增改删操作时,则会产生死锁,自动退出,此时阻塞的用户①将继续执行。排它锁(X):允许获得排他锁的事务更新数据,阻止其他事务取得...

2018-07-03 15:07:36 1192

空空如也

空空如也

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

TA关注的人

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