- 博客(70)
- 收藏
- 关注
原创 log4j是如何拖慢你的系统的
log4j 引起的线上事故1 问题起因这个是在生产环境中发生的问题,第一次事故因为别人把大量的请求打来过来,猜测是机器扛不住,后来量少后发现问题不存在了,大致把问题定位是因为量的问题,也就准备后续的扩容,大概过了几个月,线上又发生了一次事故,事故的特征排查之后的特征就是打印log的速度非常慢,而且nginx处理速度也慢,同一个请求两个条日志之间间隔了好几秒, 经过运维排查后,是
2017-11-21 16:04:30 7812 1
原创 google authenticator 工作原理
google authenticator TOTP文档https://tools.ietf.org/html/rfc6238实现源码 Google authenticator版本https://github.com/google/google-authenticator-android1.拿到HMACSHA1计算之后的签名static Signer getSigningOracle(String s
2017-08-29 17:49:54 6173 1
原创 SpringBoot中级教程之SpringBoot自定义配置(十一)
SpringBoot中级教程之SpringBoot自定义配置(十一)前言首先力推下我的开源项目http://git.oschina.net/wangkang_daydayup/swagger-doc 这是一个完全利用spring boot开发的项目,拯救了springfox-swagger污染代码的问题,完全利用java-doc来实现,学习成本几乎是01.介绍在Spring的代码中随处可见的@Ena
2017-07-18 16:14:43 18768 3
原创 swagger-doc 让你high起来的swagger
swagger-doc重点先说说这个项目解决了什么问题这个项目跟swagger有着很大的联系,总得来说是给swagger解决了大部分人不想用swagger的问题,污染代码。大家可以来看看这是我之前用swagger的时候的代码@GetMapping("/v1/index/banner")@ApiOperation(value = "获取首页Banner", response = BannerJso
2017-07-13 19:16:03 6253
原创 C开发第一章配置Vim编辑器
开篇前言工欲善其事,必先利其器,我是一个C的小白,要说学过c语言,只能是大一上学期学了一个月,经过这几年的工作,发现基础比较重要,而且在java上感觉进步也不是太大了,想多了解一些底层原理和语言之间的差别,也许有人问为什么不学go,其实我也想过,不过仔细思考了现在自己的一个程度,其实语言并不是什么问题,因为在这之前简单的搞过python、php、js等语言,基本到能写业务代码也就几天而已。学c是为了
2017-01-12 16:49:11 1010
原创 SpringBoot初始教程之SpringBoot-Metrics监控(十)
SpringBoot初始教程之SpringBoot-Metrics监控(十)1.介绍Metrics基本上是成熟公司里面必须做的一件事情,简单点来说就是对应用的监控,之前在一些技术不成熟的公司其实是不了解这种概念,因为业务跟技术是相关的 当业务庞大起来,技术也会相对复杂起来,对这些复杂的系统进行监控就存在必要性了,特别是在soa化的系统中,完整一个软件的功能分布在各个系统中,针对这些功能进行监控就更
2016-11-21 17:12:06 40898 4
原创 SpringBoot初始教程之Tomcat、Jetty优化以及Https配置(九)
SpringBoot初始教程之Tomcat、Jetty优化以及Https配置(九)1.介绍在SpringBoot的Web项目中,默认采用的是内置Tomcat,当然也可以配置支持内置的jetty,内置有什么好处呢? 1. 方便微服务部署。 2. 方便项目启动,不需要下载Tomcat或者Jetty在目前的公司已经把内置的Jetty部署到了线上项目中,目前来说并无太大问题,内置就算有一些性能损失,
2016-11-21 11:38:03 34966 1
原创 SpringBoot初始教程之测试(八)
SpringBoot初始教程之测试(八)1.介绍在为参加工作之前也写过测试用例,当时主要是针对外包项目的,其实总的来说主要是用来跑数据当做main方法使用,但基本不经常写,随着工作年限的增长。 渐渐的写了很多测试用例,主要是针对以下两种原因:项目代码量庞大,每次迭代的任务不是很多。公司有发布系统,每次提交代码到git都会触发编译,部署。为了保障改了之后的代码能够正常运行,至少不报明显错误。
2016-11-19 14:23:15 18463 5
原创 SpringBoot初始教程之Servlet、Filter、Listener配置(七)
SpringBoot初始教程之Servlet、Filter、Listener配置(七)1.介绍通过之前的文章来看,SpringBoot涵盖了很多配置,但是往往一些配置是采用原生的Servlet进行的,但是在SpringBoot中不需要配置web.xml的 因为有可能打包之后是一个jar包的形式,这种情况下如何解决?SpringBoot 提供了两种方案进行解决2.快速开始2.1 方案一方案一采用原生
2016-11-10 16:07:31 51961
原创 SpringBoot初始教程之数据库连接池(druid)(六)
SpringBoot初始教程之数据库连接池(druid)(六)1.介绍Druid是一个JDBC组件库,包括数据库连接池、SQL Parser等组件。DruidDataSource是最好的数据库连接池。SpringBoot支持任何一种数据库链接池的配置,在这里用druid作为例子进行讲解2.快速开始这块先以Spring的JdbcTemplate为列子进行讲解pom.xml <?xml vers
2016-11-09 12:00:56 17478 1
原创 SpringBoot初始教程之热部署(五)
SpringBoot初始教程之热部署(五)1.介绍SpringBoot提供了一个maven插件来支持热部署spring-boot-devtools,仅仅是在开发环境中使用,如果已经打包了就无法使用。 <dependencies> <dependency> <groupId>org.springframework.boot</groupId>
2016-11-08 16:06:48 9809 2
原创 SpringBoot初始教程之Redis集中式Session管理(四)
SpringBoot初始教程之Redis集中式Session管理(四)1.介绍有关Session的管理方式这里就不再进行讨论,目前无非就是三种单机Session(基于单机内存,无法部署多台机器)、基于Cookie(安全性差)、基于全局的统一Session管理(redis、mysql)等多种方式 针对于像淘宝这种超大型网站来说Session如何管理的就无从得知了、但是可以通过yy的方式想象一下,这种
2016-11-08 16:06:15 20364 3
原创 SpringBoot初始教程之统一异常处理(三)
SpringBoot初始教程之统一异常处理(三)1.介绍在日常开发中发生了异常,往往是需要通过一个统一的异常处理处理所有异常,来保证客户端能够收到友好的提示。SpringBoot在页面 发生异常的时候会自动把请求转到/error,SpringBoot内置了一个BasicErrorController对异常进行统一的处理,当然也可以自定义这个路径application.yamlserver:
2016-11-08 11:54:57 35166 7
原创 SpringBoot初始教程之日志处理(二)
SpringBoot初始教程之日志处理(二)1.介绍SpringBoot默认是采用logback进行日志处理、Logback是由log4j创始人设计的又一个开源日志组件。Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。
2016-11-07 23:00:44 15670 4
原创 SpringBoot初始教程之项目结构(一)
SpringBoot初始教程之项目结构1 简介Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”. We take an opinionated view of the Spring platform and third-
2016-11-07 19:49:14 31985 2
原创 Spring 源码解析之DispatcherServlet源码解析(五)
Spring 源码解析之DispatcherServlet源码解析(五)前言 本文需要有前四篇文章的基础,才能够清晰易懂,有兴趣可以先看看详细的流程,这篇文章可以说是第一篇文章,也可以说是前四篇文章的的汇总,Spring的整个请求流程都是围绕着DispatcherServlet进行的类结构图根据类的结构来说DispatcherServlet本身也是继承了HttpServlet的,所有的请求都是
2016-05-30 22:27:22 8477
原创 Spring 源码解析之ViewResolver源码解析(四)
Spring 源码解析之ViewResolver源码解析(四)1 ViewResolver类功能解析1.1 ViewResolver Interface to be implemented by objects that can resolve views by name. View state doesn’t change during the running of the applic
2016-05-25 14:49:53 7166 1
原创 Spring 源码解析之HandlerAdapter源码解析(三)
Spring 源码解析之HandlerAdapter源码解析(三)前言 这篇文章主要是解决上篇遗留的问题,主要是因为内容比较多Spring 源码解析之HandlerAdapter源码解析(二)遗留问题1. WebAsyncManager 和AsyncWebRequest 这些都是异步请求的管理? 先来看看使用的方式上有什么不同 @RequestMapping("/call")
2016-05-24 15:25:34 2545
原创 Spring 源码解析之HandlerAdapter源码解析(二)
Spring 源码解析之HandlerAdapter源码解析(二)前言 看这篇之前需要有Spring 源码解析之HandlerMapping源码解析(一)这篇的基础,这篇主要是把请求流程中的调用controller流程单独拿出来了解决上篇文章遗留的问题getHandler(processedRequest) 这个方法是如何查找到对应处理的HandlerExecutionChain和Handl
2016-05-20 12:44:45 14161
原创 Spring 源码解析之HandlerMapping源码解析(一)
Spring 源码解析之HandlerMapping源码解析1.HandlerMapping功能分析HandlerMapping是spring中最重要的一个类,主要功能就是为请求找到合适的处理器,现在Controller只是处理器的一种,目前我们自己公司自己实现了一套框架,前端js可以直接调用后端 soa service,忽略controller的存在,适合一些无用户状态的场景,比如说
2016-05-19 10:48:09 6374 4
原创 Mysql5.6 Master Slave 配置
Mysql的主从大概分为多个模式,目前搭建的这个是一个主库跟一个备库的模式。Master配置增加如下:#server-id:为主服务器A的ID值#log-bin:二进制变更日值[mysqld]#master setting startserver-id = 1#synchronous#需要备份的数据库,可以填多个binlog-do-db=test_backupbinlog-
2015-07-26 11:28:10 893
原创 Mysql 5.6安装笔记
记录一下Mysql的安装,首先我这里得版本是MySQL-5.6.25-1.el6.x86_64.rpm-bundle.tar,针对这个进行解压 #解压 tar -xf MySQL-5.6.25-1.el6.x86_64.rpm-bundle.tar #检测是否存在老版本的Mysql rpm -qa | grep -i mysql #一般默认是存在的,如果不存在这一步可以忽略,比如我这的
2015-07-25 17:04:09 755
原创 android进阶之自定义阴影边框
由于不太会使用ps,但是想要在自己写的actionbar下面加上阴影效果,所以大概研究了下android如何自己生产阴影效果,大概思路是这样,用shape的渐变效果来实现,让透明色灰色进行渐变到透明,大概就能够实现阴影效果,这里有一篇论文对属性的解释非常到位 http://blog.csdn.net/lonelyroamer/article/details/8254592 这里有两幅图,可以对
2015-01-07 16:10:36 13119
原创 android进阶之自定义view(文字圆形边框)
最近写自定义的view写了很多,打算好好完整学习一下,顺便也是记录下,首先来看看效果大概是实现上面的效果吧,其实做起来很简单,只需要继承TextView,然后在外面画上一个框即可,代码如下:public class CustomTextView extends TextView { private Paint mPaint; public CustomTextV
2015-01-06 15:12:57 3049
转载 转自美团技术博客的jvm内存泄露分析
Linux与JVM的内存关系分析引言在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约600m,Linux自身使用大约800m。从表面上,物理内存应该是足够使用的;但实际运行的情况是,会发生大量使用SWAP(说明物理内存不够使用了),如下图所示。同时,由于SWAP和GC同时发生会致使JV
2014-12-17 17:21:22 4173
原创 android实现qq邮箱多个图标效果
最近项目要求,需要实现装一个qq邮箱,然后可以使用qq邮箱日历的那么一个东西,相当于一个应用生成两个图标,点击不同的图标可以进入不同的应用。
2014-12-16 12:38:39 1411
转载 转自stormzhang的一些博文
Android网址或BlogAndroid官网身为Android开发者不知道这个网站就太说不过去了,上面有你任何你需要的东西Android Developers BlogAndroid官网博客, 在上面可以关注Android最新的进展与最权威的博客(须翻墙)Android开源项目汇总我的好朋友Trinea整理的非常全面的GitHub开源项目汇总,不需
2014-11-14 21:20:16 971
转载 android编译时注解框架
AndroidAnnotations是一个能够让你快速进行Android开发的开源框架,它能让你专注于真正重要的地方。使代码更加精简,使项目更加容易维护,它的目标就是“Fast Android Development.Easy maintainance”。通过一段时间的使用发现,相比原生的Android开发,确实能够让你少些很多代码,它的首页也给出了一个简单的例子,通过例子
2014-11-11 16:20:25 999
原创 android 缺点认知
经过本人的面试经验,以及接触的android项目,总结了一下android的一些类库的优缺点:一,线程方面1.AsyncTask首先是线程优化以及缺陷方面,针对目前大多数类库来说,都有好的设计方面和缺陷的方面,比如内部自带的AsyncTask,这个类优点很多,使用方便,加快快速开发,但是每次都需要new 一下然后把对应的参数放在里面,感觉这个过程不是十分稳妥,性能有待加强,主要是内部的一个
2014-11-04 13:36:10 1026
原创 Set之HashSet源码解析
对于HashSet; /* * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * *
2014-08-04 17:35:22 725
原创 ArrayList源码解析
这个 package java.util;import java.util.function.Consumer;import java.util.function.Predicate;import java.util.function.UnaryOperator;//ArrayList实现机制,他实现了List,Cloneable,可通过clone方法
2014-08-04 17:34:28 922
原创 LinkedList源码解析
package java.util;import java.util.function.Consumer;/*所有已实现的接口: Serializable, Cloneable, Iterable, Collection, Deque, List, Queue List 接口的链接列表实现。实现所有可选的列表操作,并且允许所有元素(包括 null)。除了实现 List 接口外,Lin
2014-08-04 17:34:23 671
原创 AsyncTask源码解析
1.当我们在new 自己的异步任务时候会初始化实例化两个类WorkerRunnable ,FutureTask,并且重写WorkerRunnable call方法和FutureTask的done方法。2.call方法主要执行子类复写的doInBackground,然后调用 postResult显示数据,在postResult里面去调用handler发送数据然后调用finish方法去调用子类的onPostExecute方法,这个时候我们就可以在自己复写的onPostExecute进行ui更新
2014-08-01 17:43:06 971
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人