- 博客(15)
- 收藏
- 关注
原创 postgresql数据库使用AES加解密和java使用AES加解密不一致的问题
公司内部的P2P平台由于监管,进行了一系列不合规项的整改。其中有一条就是要对数据库中一些比较敏感的信息进行加密,比如:手机,邮箱,身份证,银行卡之类的。解决方案是,在整个过程,查询的时候在java服务端进行解密,插入和更新的时候在java服务端进行加密。数据库端则存放加密后的信息。本来只需要考虑java服务端加解密后能保持一致即可,但是为了方便某些在数据库端进行运维的人能使用sq...
2018-05-14 11:20:44 3913 1
原创 网络协议学习笔记
网络学习的学习笔记,记录一些学习要点。1.网络的五层模型:从下到上 :物理层,链路层,网络层,传输层,应用层。 2.物理层:物理层面把电脑连接起来:可以是光纤电缆无线信号之类的,传输0和1。3.链路层:主要是以太网协议,定义了帧,即一组电信号。协议头记录通讯双方MAC地址(硬件网卡的唯一标识,前六位是厂商id,后六位是厂商内部的流水id)以及其他协议信息。MAC地...
2018-04-16 16:54:39 228
原创 dubbo协议报文格式
dubbo默认采用netty进行TCP通讯。TCP是传输层协议,在应用层,往往会拓展自定义的协议,一是可以处理TCP本身的粘包拆包问题,二是约定通讯过程的其他细节。 所以dubbo默认采用自定义的dubbo协议。文档描述:Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。缺省...
2017-09-19 10:15:04 3046 1
原创 配合线程池定义可继承的线程变量InheritableThreadLocal
说到可继承的线程变量,大家可能会想到jdk里的实现java.lang.InheritableThreadLocal。它拥有和线程变量ThreadLocal一样的功能,并且,在当前线程上创建一个新的线程实例Thread时,会把这些线程变量从当前线程传递给新的线程实例。(此时线程变量不再线程安全,需要考虑线程安全问题)InheritableThreadLocal: pu...
2017-08-29 17:09:10 1775
原创 扩展mybatis重写mybatis执行器实现灵活批处理
在用mybatis作为持久层框架时,有时候会有需要进行批量增删改的操作。百度了一下,大致有两种方法,一种是拼接SQL的方式。类似这样:<insert id="insertList" parameterType="java.util.List" > insert into t_project ( projectid,productid ) values...
2017-08-27 00:41:19 2199
原创 springboot使用undertow作为web容器而引发的中文乱码问题
先说一下出现这种情况的场景。该场景在使用jetty,tomcat作为容器时是可以正常运行的。首先是表单提交。<form id="submitForm" action="${base}/test/aa.html" method="post"> <input type="hidden" name="userSource" value=&
2017-07-25 11:19:25 6667 3
原创 动态代理在RPC框架中的性能对比
这几天打算自己写一个RPC框架,参考了阿里的dubbo,微博的motan等框架的设计。在选择代理技术时,dubbo有两种方案,一个是jdk的动态代理,一个JAVAASSIST的字节码生成技术,在dubbo作者梁飞的博客《动态代理方案性能对比》http://javatar.iteye.com/blog/814426中,因为作者在编写服务框架需要用动态代理生成客户端接口的stub,进...
2017-06-04 00:34:51 386
原创 从二进制指令看包装类Integer在编译期处理优化及二进制指令代码解析
先看一段demo:package com.onlyou;/** * Created by cd_huang on 2017/5/25. */public class Test { public static void main(String args[]) { intTest(); } public static String intTes...
2017-05-25 17:23:55 194
原创 用dubbo直接调用webservice
场景:他人的服务端暴露的webservice接口,我这边客户端集成了dubbo,所以想用dubbo直接去调用webservice。因为dubbo的官方文档上说dubbo有提供这些功能。 dubbo版本2.3.0以上版本支持。需要在pom里添加依赖,它是基于CXF的frontend-simple和transports-http实现。maven依赖:<depe...
2017-04-24 12:39:34 2511
原创 java增强for循环的原理验证
在java里,我们是怎么写for循环的代码呢。一般都是用这两种写法:第一种:最传统的for循环写法,for(代码段a;代码段b;代码段c),其中代码段a是初次进入for循环时执行的代码,代码段b是一个boolean的表达式,true则继续执行for循环内容,false则停止for循环,代码段c则是在for循环内部执行完后执行。第二种:针对集合的遍历,for(类型 单个对象:集...
2017-04-14 10:35:12 466
原创 junit 4只是简单的加了一个@Test,程序是怎么跑起来的
在写测试用例的时候,突然很疑惑,为什么我只是加了一个@Test的注解,就能运行一个程序。我们知道,main方法才是一个java程序的起点。那junit4的测试用例是怎么跑起来的呢。为了解决这个疑惑,我就自己写测试用例debug调试了下。 测试用例如下:package com.onlyou.olyfinance.remote.base;import org.ju...
2017-04-13 23:53:09 1202
原创 java字符串拼接在编译时优化测试
为了验证编译器对于String相关代码的字节码优化,我简单的做了个测试:jdk版本:1.7.0_51 java 用例代码:package com.rsp.shiro;/** * Created by cd_huang on 2017/4/1. */public class StringTest { public static String StaticStrin...
2017-04-01 16:11:40 438
原创 java线程池增强实现
前两天在开涛的公众号里,开涛聊到一次请求生成唯一的traceId在各个业务系统中传递,然后通过日志收集各个业务服务中的日志,形成一次请求的完整日志。开涛简单的提到了是使用自己实现的线程池增强技术来传递traceId。 我这边系统也有类似的需求。所以我就尝试性地实现了下线程池增强。本来想着既然是增强,第一反应是用代理技术去实现,后来发现不需要代理就可以简单地实现。...
2017-01-19 17:01:26 332
原创 用spring目标对象处理Transaction rolled back because it has been marked as rollback-only
在使用spring做事务管理时,很多人都会遇到这样一段异常:org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only at org.springframework.transa...
2016-11-07 10:18:40 300
原创 java多线程基础知识
在大学的java课本上,或者是一些java理论知识里,都是这样子写着Java多线程的实现的:1、继承java.lang.Thread,并重写它的run()方法。[code="java"]publicclass Thread implements Runnable {...@Override public void run() { if (...
2016-04-30 16:01:07 142
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人