- 博客(168)
- 资源 (27)
- 收藏
- 关注

原创 SpringMvc/SpringBoot HTTP通信加解密
前言从去年10月份到现在忙的没时间写博客了,今天就甩给大家一个干货吧!!!近来很多人问到下面的问题我们不想在每个Controller方法收到字符串报文后再调用一次解密,虽然可以完成,但是很low,且如果想不再使用加解密,修改起来很是麻烦。我们想在使用Rest工具或swagger请求的时候不进行加解密,而在app调用的时候处理加解密,这可如何操作。针对以上的问题,下面直接给...
2017-08-10 17:03:15
19233
2

原创 基于OTP的AES数据加密
OTP(One Time Password)单次有效密码,即使用一次就失效的密码,也就说每次使用都是一个不同的密码。现在普遍用来作为认证的二次验证。这种二次验证的好处是能有效抵御暴力破解。要使用这种密码就得有生产此种密码的生成方式: - HTOP(HMAC-based One-time Password Algorithm) 基于计数器生成密码 - TOTP(Time-based One-t
2016-09-28 15:09:45
2498

原创 Android调用so库(c语言编写) Codeblocks+adt-win-x86+ndk-r9c
Android调用so库, so库是c语言编写, 在linux 64位系统+ndk(32位)生成 lib*.so (32位)环境:操作系统:Redhat Server 63 编译软件:Code::blocks开发库:android-ndk-r9c-linux-x86.tar.bz22) Android客户端开发操作系统:windows 7 x86测试环境: android手机(系统4.0及以上)开发工具和SDK包:
2014-01-23 10:19:10
11282
原创 【ROS】源码分析-消息订阅与发布
本文通过`NodeHandle::subscribe`和`Publication::publish()`源码作为入口,来分析PubNode、SubNode之间是网络连接是如何建立的,消息是如何发布的,topic队列到底是如何实现的。
2022-06-19 23:07:50
2406
1
原创 【ROS】源码分析-服务发现原理
本文通过NodeHandle源码作为入口,来分析PubNode、SubNode、Master之间是如何发现彼此的。
2022-06-19 14:18:11
1630
原创 【ROS】源码分析-roscore与Master启动
本文从源码层面分析ros Master是如何启动的,以及Master(服务注册和发布、参数服务)到底是什么高大尚的东东。
2022-06-19 11:55:40
3241
1
原创 基于先序遍历 输出二叉树叶子节点的路径(非递归)
基于先序遍历 输出二叉树叶子节点的路径(非递归)思路: 1. 先序遍历二叉树,入栈,直到访问到叶子节点; 2. 如果达到叶子节点,遍历当前栈,获取当前叶子节点的路径;然后进入回退模式,直到有新的右节点。 3. 在回退的过程中,如果是父节点为了不再重复进入进入左右子树,使用一个pre指针指向最近回退点(pre肯定是当前父节点的左或右孩子)。定义节点,为了简化,省略访问修饰、泛型、get...
2018-03-21 19:45:10
3764
原创 Fastjson 解析多级泛型时而失败的解决方案
fastjson 解析多级泛型时而失败:class PeiqiResponse<T> { Boolean success; Integer errCode; String errDes; T result;}声明:PeiqiResponse<List<Dept>>调试分析经过多次调试,问题出现在这里 DefaultFieldDeserializer#pa
2016-10-09 18:27:55
21221
1
原创 My Git Flow
目前需要解决的问题:在开发过程中,多个功能后台开发完成后,前端再开发,需要将几个后台完成的功能同时部署到开发环境一个版本中的多个功能都开发完成后,需要集成测试多个版本在同时开工的情况下,多个版本都测试完成后,上线的时候需要多个版本合并解决办法:利用临时分支 dev-merge 合并开发中的多个feature分支,然后部署到开发环境每个版本基于 develop 分支创建新分支(如:M9W2
2016-09-08 19:47:41
545
原创 spring-cache 雪崩
spring-cache 基本原理是利用拦截器,先尝试读取缓存,未命中缓存,先读库在写入缓存,经过查看源码如果在并发量大的时候容易造成“雪崩”。原因是在更新缓存逻辑中没有做并发更新的处理。
2016-08-29 18:38:01
2909
原创 Reflections - Java 8 - invalid constant type
异常说明使用Reflections扫描的时候出现could not create class file from, 原因是invalid constant type: 18异常堆栈:org.reflections.ReflectionsException: could not create class file from EmployeeDao.class at org.reflection
2016-08-11 16:52:29
4386
1
转载 CentOS7 Tomcat 启动过程很慢,JVM上的随机数与熵池策略
1. CentOS7 Tomcat 启动过程很慢在centos启动官方的tomcat时,启动过程很慢,需要几分钟: SessionIdGenerator.createSecureRandom Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [142,673] milliseconds
2016-07-14 14:24:38
18547
3
转载 centos7 systemd in Fedora 22: Failed to restart service: Access Denied
使用 systemctl 重启服务的时候提示拒绝访问$ systemctl restart postfixFailed to restart postfix.service: Access denied解决办法:systemctl daemon-reexecREF: * https://major.io/2015/09/18/systemd-in-fedora-22-failed-to-rest
2016-07-14 11:35:18
11028
原创 分享swagger
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。
2016-07-08 13:16:32
2691
原创 [Exception]spring-boot Failed to start component [StandardServer[-1]]
在使用spring-boot时,使用了其他的模块,导致spring-boot启动总是失败。错误堆栈:Failed to start component [StandardService[Tomcat]]
2016-05-17 13:53:55
20346
1
原创 Android Google Services Framework & Google Play
今天早上看到手机提示系统更新完成,需要重启,然后点击了reboot, 没想到重启后google play 打不开了,并且老是提 has topped。重新安装以前存储的 google services framework.apk 和 google play.apk,然并未卵用。估计是Android系统版本升级的了,导致了不兼容,看了一下Android版本,竟然一下从4.4到了6.0.1.MMB29M
2016-04-16 01:43:20
13740
原创 spring-jms/DefaultMessageListenerContainer配置
DefaultMessageListenerContainer配置一个DefaultMessageListenerContainer可以开启多个 (concurrent)AsyncMessageListenerInvoker并发 收消息两种模式: 模式一:递增监听线程并调度,监听线程轮询监听消息模式二:动态调度监听线程(递增/递减),有限轮询+重新触发调度
2016-04-07 18:35:24
14275
原创 supervisord
supervisordeasy_install install supervisorecho_supervisord_conf > /etc/supervisord.confrunsupervisordvi /etc/supervisord.conf[program:ejiakao]command=/data/panda/ejiakao.shdirectory=/data/pandauser
2016-04-02 01:00:51
609
原创 springmvc 部分加密通信
至于不用HTTPS,本文不讨论,这里给出使用springmvc +http协议,手机客户端加密部分数据只,后台进行统一解密。实现思路就是使用拦截器,使用装饰模式,可以直接使用HttpServletRequestWrapper。
2016-03-30 12:23:37
5256
原创 简单的logback日志收集服务端
使用logback jar包写的一个简单的收集多个服务的shell, 不同的服务使用不同的端口,同一个服务不同实例使用同一个端口,服务名称和端口映射存储在app.list app.list
2016-03-25 18:51:56
3346
原创 看了 淘宝大秒系统设计详解 总结
看了 淘宝大秒系统设计详解 总结动静分离热点数据分离数据库,提前预约预知热点数据应用层排队和限流,避免雪崩,a:按照商品排序,同一个商品尽量正在同一个机器,减少过多的占用数据库连接;b: 使用缓存先完成等待和入队限制(如缓存中设置商品数量和等待数量等)对于统一商品库存动态变化问题,被动更新,缓存一定时间(秒),有一定的脏读,失效后再去拉取最新数据,或者使用缓存完成加减(入队则–, 失败则加加
2016-03-10 15:29:33
2228
原创 使用spring工厂方法(FactoryBean)模式动态创建bean
自定义复杂bean注册到springA依赖B, B依赖C,A和C是有spring创建,而B要自己去创建,并且像B的有很多,比如B的调用实际是一个RPC在什么时机去装机B并能让spring找到这个依赖呢?spring的FactoryBean就可以解决(不是BeanFactory)下面以 Retrofit 为例简单说明,类B的bean都是由retrofit创建(动态代理)先声明一个 FactoryBea
2016-03-04 16:43:10
12252
转载 JVM源码分析之javaagent原理完全解读
原文 http://lovestblog.cn/blog/2015/09/14/javaagent/
2016-03-01 17:40:51
1492
原创 MySQL innodb引擎,事务提交 commit 异常,但数据提交成功
昨天线上服务出现的奇怪的异常,数据库中数据已经提交(都是innodb引擎), 但是java代码抛出异常,并从日志分析是commit异常,最后在catch中的rollback都为时已晚。这次的异常可与之前的与众不同,之前的如果commit异常了,数据肯定是回滚了(mysql服务器没有收到commit,并且连接已经中断),commit异常了,但是服务器数据没有回滚。
2016-02-24 17:57:50
15488
2
原创 flume nginx 日志处理异常 JsonParseException: Unexpected character ('(' (code 40)): expected a valid value
flume nginx 日志处理异常 JsonParseException: Unexpected character (‘(’ (code 40)): expected a valid value最近flume处理nginx日志,每隔几天就断一次,出现JSON反序列化异常异常堆栈:2016/01/26 14:37:49.043 [ERROR] [] [] [SinkRunner-PollingRu
2016-01-26 15:06:45
20488
原创 Log4jFlumeAppender
自己改造的 FlumeClinet 的 Log4jAppender修改了异常/断线重连修改header时间格式为ISO8601格式增加字符串LEVEL参数支持event.properties加入header(MDC)FlumeAppender.javapackage org.apache.log4j.client;import org.apache.avro.Schema;import
2016-01-11 10:59:22
1303
原创 flume + elasticSearch + kibana, 分析nginx日志
nginx 日志格式 2.81.22.87 - - [2016-01-08T15:33:55+08:00] "GET /do_not_delete/noc.gif HTTP/1.1" 200 3166 "-" "ChinaCache" "-" "0.000" "-" "-"2.81.22.83 - - [2016-01-08T15:33:55+08:00] "GET /do_not_delete/
2016-01-08 15:58:37
6058
原创 flume + elasticSearch + kibana
flume: 1.6.0 elasticSearch: 1.6.0kibana: 4.1.3-linux-x64下载地址:http://mirrors.hust.edu.cn/apache/flume/1.6.0/apache-flume-1.6.0-bin.tar.gzhttps://download.elastic.co/elasticsearch/elasticsearch/elasticse
2016-01-06 19:37:12
1617
原创 log4j flume
描述最近使用 log4jFlumeAppender ,通信一会就会中断,自己将 log4jFlumeAppender 改造了2星期,重新看了 NettyAvroRpcClient 和 Netty 源码,最后还是经常性的异常,导致需要重新连接服务器,导致worker线程频繁性关闭和新建。最后决定在看服务器的代码,后来通过配置capacity(增大), 一般比较稳定,但还是每隔几分钟就会异常。使劲增大
2016-01-06 19:26:03
1550
转载 查找树 trie
public class Trie { private int SIZE = 26; private TrieNode root;//字典树的根 Trie() {//初始化字典树 root = new TrieNode(); } public int getTotal() { return root.num - 1; }
2015-11-25 16:20:12
487
原创 daemon.c
daemon.c#include <unistd.h>#include <signal.h>#include <sys/param.h>#include <sys/types.h>#include <sys/stat.h>#include <errno.h>#include <stdlib.h>#include <stdio.h>#include <stdlib.h>#includ
2015-11-05 19:14:28
660
原创 hmac
算法:HMAC 需要一个加密用散列函数(表示为 H)和一个密钥 K。我们假设 H 是 一个将数据块用一个基本的迭代压缩函数来加密的散列函数。我们用 B 来表示数据块的字长。(以上提到的散列函数的分割数据块字长 B = 64),用 L 来表示散列函数的输出数据字长(MD5中 L = 16 , SHA-1 中 L = 20)。鉴别密钥的长度可以是小于等于数据块字长的任何正整数值。应用程序中使用
2015-10-24 01:04:04
1009
原创 redis session manager
redis session-managerkeywords: session manager; redis session manager; redis session;1. config listenerset JedisPool and cacheEngine, new customer CacheListener extends CacheEngineLoadListener:CacheEng
2015-09-18 11:35:28
968
原创 中断 定时器 实现 sleep
本文讲解一下使用中断实现sleep,纯正的 sleep 应该做到 CPU占用率几乎为0(与使用while实现的sleep完全不同), sleep完成恢复准时(也就相差几个指令周期)。先来说明一下软中断, 本文只是以形象的方式讲解,具体的每个操作系统、软件工具的实现以实际为准1. 程序调试、系统API调用(软中断实现) 程序调试设置了断点,这种调试可以使用中断("软
2015-09-11 01:22:01
2155
转载 Docker基础技术:Linux Namespace(上)
Linux Namespace是Linux提供的一种内核级别环境隔离的方法。不知道你是否还记得很早以前的Unix有一个叫chroot的系统调用(通过修改根目录把用户jail到一个特定目录下),chroot提供了一种简单的隔离模式:chroot内部的文件系统无法访问外部的内容。Linux Namespace在此基础上,提供了对UTS、IPC、mount、PID、network、User等的隔离机制。
2015-09-07 18:27:37
591
原创 mark jsp BigDicimal 小数保留
jsp BigDicimal 小数保留 , 开发环境没问题,但是线上环境就报错了jetty: ${priceRMB.setScale(1,'HALF_UP')} 正常 ${priceRMB.setScale(1,HALF_UP)} 异常 空指针(roundingMode) 第二个参数el没有解析成功tomcat: ${priceRMB.s
2015-08-26 19:19:36
869
HttpClientTest122
2014-07-26
swfupload demo (Java)
2013-09-03
httpClient连接https 获得验证码图片示例
2013-01-27
添加系统host,localhost
2012-08-10
网络切换2.5+补丁1
2012-05-09
动态 拖动按钮,基于对话框
2011-08-16
记事本自动保存 小程序 vc++ 时间间隔 最低 1 毫秒 最高27.7小时
2011-08-01
个人通讯录管理 JAVA
2011-06-30
两个进程间通信 vc++
2011-06-01
通讯录管理系统(c 链表)
2010-09-20
高校教师人事管理系统(用C和链表实现)
2010-09-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人