- 博客(37)
- 收藏
- 关注
原创 同一条件下符合不通条件的数据sql查询
select * from user_tag a where `code`='LJ_002' and is_deleted =0 and 'LJ_001' not in (select code from user_tag where id <> a.id and user_id = a.user_id and is_deleted =0);select * from user_t...
2019-06-24 11:44:41 695
原创 java8常用集合转换
List转map1.普通转换【重复、为空时会报异常】Map<Long, ProtocalItemDO> protocalMap = listDO.stream().collect(Collectors.toMap(ProtocalItemDO::getId, protocal -> protocal));2.重载toMap方法转换【重复、为空时不报异常,后面的值会...
2019-06-20 10:50:16 397
原创 记一次调用service实现类Synchronized同步锁失效的坑
我的同步方法是这样写的@Override@Transactional(rollbackFor = Exception.class)public synchronized SyTaskChildDO initTaskChild(SyTaskChildQueryParam param) { try { List<SyTaskChildDO> taskCid...
2019-05-10 09:43:39 5420
原创 json经过两次序列化之后怎么转对象
String s = "\"{\\\"aa\\\":1841432,\\\"bb\\\":false}\"";s = StringEscapeUtils.unescapeJava(s);s = s.replaceFirst("\"","");s = s.replaceFirst("\"\\z","");System.out.println(s);Model d = JSONObject...
2019-03-28 14:14:52 1834
原创 提供http文件上传接口
/** * @param bizQualifications * @return */@RequestMapping(value = "addQualification", method = RequestMethod.POST)public @ResponseBodyString addQualification(BizQualifications bizQualification...
2019-01-02 20:09:21 6667
原创 打印同一个请求线程日志ThreadLocal、脱敏日志
public class LogBusinessIdUtils { private static final ThreadLocal<String> businessLocal = new ThreadLocal<String>(); /** * 返回当前线程对应的uuid * @return */ public...
2018-11-22 10:44:20 1379
原创 IDEA详细配置和使用教程-字体、编码和基本设置
IDEA使用--字体、编码和基本设置https://blog.csdn.net/frankcheng5143/article/details/50779149IntelliJ IDEA详细配置和使用教程https://blog.csdn.net/m_m254282520/article/details/78900238 IDEA版本15.0.4字体界面字体Fil...
2018-11-21 17:31:24 419 1
转载 Eclipse、IDEA环境下设置jvm默认编码
转自 https://blog.csdn.net/u014424628/article/details/49429393这这有个小程序,大家可以在自己机器上跑一下:import java.nio.charset.Charset;public class Encoding { public static void main(String[] args) { Sy...
2018-11-21 17:11:54 302
原创 代码审查笔记
1. Map、List、Set创建时指定size主要是为了避免集合扩容时消耗机器性能(扩容时开辟一块新的内存,把原始数据copy到新的内存里)2. Map、List、Set返回empty对象时建议使用Collections.emptyMap()等创建Collections.emptyMap()对象不可以添加元素,所有的Collections.emptyMap()都是同一个实例,不会...
2018-11-08 18:08:34 239
原创 IDEA快捷键笔记
摘要:快捷键说明IntelliJIDEA的便捷操作性,快捷键的功劳占了一大半,对于各个快捷键组合请认真对待。IntelliJIDEA本身的设计思维是提倡键盘优先于鼠标的,所以各种快捷键组合层出不穷,对于快捷键设置也有各种支持,对于其他IDE的快捷键组合也有预设模板进行支持。关于各个快捷键的频率分类上可能每个人都有各自的看法,下面的整理也只是已我个人的使用习惯来划分的,而我应该是可以代表某一部分小众...
2018-11-07 09:14:17 276
原创 java可视化执行小工具
实现一个简单的加法器,上代码监听类import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;class Myclick ...
2018-11-02 16:00:16 6444
原创 map set list常用简单创建、排序
利用Collections创建单个元素集合Collections.singleton()Collections.singletonList()Collections.singletonMap("key","value")创建多个元素集合Sets.newHashSet()Maps.newHashMap()Lists.newArrayList()list&l...
2018-10-14 21:14:16 285
原创 cause: java.lang.NoClassDefFoundError: javax/validation/ValidationException
maven引入依赖 <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>4.2.0.Fi...
2018-09-24 16:50:43 11515 3
转载 an named '*' must be of type [*], but was actually of type [$Proxy16]
在用junit测试dao接口时,出现以下的错误Caused by: org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'userDao' must be of type [com.changetech.dao.impl.UserDaoImpl], but was actually of ty...
2018-08-02 18:17:55 162
转载 jstat命令查看jvm的GC情况 (以Linux为例)
jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。命令的格式如下: jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数] 注意!!!:使用的jdk版本是jdk8. 类加载统计: Loaded:加载class的数量 Bytes:所占用空间大小 Unloaded:未加载数量 Bytes:未加载占用空间 Time:时间 编译...
2018-07-30 15:03:26 369
原创 org.springframework.aop.AopInvocationException: Null return value from advice does not match primiti
出现这种错误一般是发生在自定义的aop切面里,监控的方法里抛出的异常,可以在aop里加上try catch 把真正的异常打印出来
2018-07-30 12:20:06 3746
转载 MySQL的四种事务隔离级别
本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成的基本单位。 2、一致性(Con...
2018-07-13 20:34:50 208
原创 解决 Received fatal alert: handshake_failure 的问题
废话少说直接上代码Java代码import java.io.DataInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ConnectException; import java.net.URL; i...
2018-07-12 11:30:36 20196
转载 解析一致性哈希算法
【原理】解析一致性哈希算法前言在了解一致性哈希算法之前,最好先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法就容易多了,也更能体现出一致性哈希算法的优点。那么,我们先来描述一下这个经典的分布式缓存的应用场景。应用场景假设,我们有三台缓存服务器,用于缓存图片,我们为这三台缓存服务器编号为0号、1号、2号,现在有三万张图片需要缓存,我们希望这些图片被均匀地缓存到这三台服务...
2018-06-22 11:10:35 173
原创 Runable作为内部类的使用及传参
class Runner1 implements Runnable { // 实现了Runnable接口,jdk就知道这个类是一个线程 private int num; private void setNum(int nn) { num = nn; } public void run() { for (int i = 0; i < n...
2018-06-12 14:49:17 3567
原创 spring xml和注解注入的心得
使用注解扫描器context:component-scan 扫到的包才可以使用注解把class注入到spring上下文,如果不在context:component-scan 扫描范围内,则不能使用注解注入。
2018-04-12 16:17:26 577
原创 本地host文件和nginx映射的关系
假设客户端A--------》浏览器url请求域名--------》域名被host解析对应的IP--------》到对应IP的服务器--------》先被nginx反向代理拦截--------》找到nginx上一样域名(nginx.conf配置文件中server里的server_name)--------》对应的反向映射地址(nginx.conf配置文件中同左server里的proxy_pass ...
2018-04-11 13:42:22 4239
原创 静态代理、JDK与CGLIB动态代理
一、为什么需要代理模式假设需实现一个计算的类Math、完成加、减、乘、除功能,如下所示:package com.zhangguo.Spring041.aop01;public class Math { //加 public int add(int n1,int n2){ int result=n1+n2; System.out.prin...
2018-04-03 20:21:24 168
转载 Spring两种AOP实现方式
1.手动实现AOP编程(代理模式)AOP是面向切面的编程,主要功能就是实现"业务代码"和辅助业务代码的"关注点代码"分离.在一个方法中,出了核心的业务代码,其他的都叫做关注点代码.举个往数据库保存数据的例子:// 保存一个用户public void add(User user) { Session session = null; Transaction tra...
2018-04-03 11:12:00 221
原创 SpringMVC接收复杂集合参数
Spring MVC在接收集合请求参数时,需要在Controller方法的集合参数里前添加@RequestBody,而@RequestBody默认接收的enctype (MIME编码)是application/json,因此发送POST请求时需要设置请求报文头信息,否则Spring MVC在解析集合请求参数时不会自动的转换成JSON数据再解析成相应的集合。以下列举接收List<String&...
2018-03-22 12:44:12 171
转载 谈谈Java中的ThreadLocal
ThreadLocal一般称为线程本地变量,它是一种特殊的线程绑定机制,将变量与线程绑定在一起,为每一个线程维护一个独立的变量副本。通过ThreadLocal可以将对象的可见范围限制在同一个线程内。跳出误区 需要重点强调的的是,不要拿ThreadLocal和synchronized做类比,因为这种比较压根就是无意义的!sysnchronized是一种互斥同步机制,是为了保证在多线程环境下对于共...
2018-03-19 11:26:43 125
原创 多线程通讯CountDownLatch
简介CountDownLatch 允许一个或多个线程等待其他线程完成操作。应用场景假如有这样一个需求,当我们需要解析一个Excel里多个sheet的数据时,可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要提示解析完成。在这个需求中,要实现主线程等待所有线程完成sheet的解析操作,最简单的做法是使用join。代码如下:public class Jo...
2018-03-09 10:39:35 105
原创 一次content-length的教训
有一次使用springMVC写的接口,在调用的时候传了content-lengt,在传单个数字的时候可以调通,其他参数时死活就是不通。最后经过查资料发现是content-lengt计算错误。对于http的请求返回结果要进行内容的长度校验主要有两种方式,二者互斥使用1.客户端在http头(head)加Connection:keep-alive时,服务器的response是Transfer-Encod...
2018-03-08 14:47:44 10823
转载 缓存穿透,缓存击穿,缓存雪崩解决方案分析
前言设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案有很多种方法可以有效地...
2018-03-07 13:43:33 152
原创 Kettle 工具使用入门
开发环境解压文件,双击Spoon.bat启动开发指南Xml文件输入1.文件—>新建—>转换 2.拖住左边菜单栏 xml文件输入到右边3.导入xml文件内容双击xml 文件输入 读取xml 文件内容 获取xml字段 确定、保存4 调试节点右键 “xml 文件输入”然后 Preview 快速启动就可以看到读取的xml值 读取Xml 里数组读取数组最主要用到的是用到阻塞组件,可以按照这样写...
2018-03-07 11:42:01 495
原创 git简单使用
新建分支:new branch(本地新建分支)->开发完毕->commit->Unstaged Changes 拉到 Staged Changes -Commit and Push...合并到主分支:先切换到主分支->Merge 选中Local要合并的分支 点击Merge->Synchronize Workspace 对比 检查改的代码->Push to Up...
2018-03-07 11:38:38 141
原创 Mysql 数据库开发规范
一、基础规范(1)必须使用InnoDB存储引擎解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集解读:万国码,无需转码,无乱码风险,节省空间 (3)数据表、数据字段必须加入中文注释解读:N年后谁知道这个r1,r2,r3字段是干嘛的 (4)禁止使用存储过程、视图、触发器、Event解读:高并发大数据的互联网业务,架构设计思路是“解放数据库C...
2018-03-07 11:27:41 166
原创 url里出现"+"的情况,request.getParameter("")取到的+号为空格
解决方式:对url进行转义,java可使用URLEncoder.encode(url) ,javaScript 里使用encodeURIComponent(url)
2018-03-07 10:49:09 5254
原创 fastJson 转换出现"$ref"
这种情况是在JSONObject.toJSONString(obj)时出现的,原因是在obj里出现了循环引用。可使用这种方式解决JSONObject.toJSONString(this,SerializerFeature.DisableCircularReferenceDetect)...
2018-03-07 10:42:36 531
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人