● 编程语言
文章平均质量分 69
当年的春天
目前就职于阿里巴巴,六年大型互联网后端(Java)研发经验,坐标北京;擅长微服务和中间件。
展开
-
GitHub中文排行榜,帮助你发现高分优秀中文项目(二)-Java
榜单设立目的???????? GitHub中文排行榜,帮助你发现高分优秀中文项目;各位开发者伙伴可以更高效地吸收国人的优秀经验、成果;中文项目只能满足阶段性的需求,想要有进一步提升,还请多花时间学习高分神级英文项目;榜单设立范围设立1个总榜(所有语言项目汇总排名)、18个分榜(单个语言项目排名);榜单入选规则一个小小的要求:项目的 Description 和 README.md 都要包含中文说明;更新越持续越好:最近半年内有更新过的项目才有机会入选(拥抱活跃,远离僵尸);Star转载 2021-01-31 00:08:05 · 5512 阅读 · 1 评论 -
内存溢出+CPU占用过高:问题排查+解决方案+复盘(超详细分析教程)
前言最近刚上线了一款社交项目,运行十多天后(运营持续每天推量),发现问题:系统OOM(资源不能被释放)导致服务器频繁且长时间FGC导致服务器CPU持续飚高日志中内存溢出:java.lang.OutOfMemoryError: Java heap space程序十分卡顿,严重影响用户使用从以下方面,为大家分享此次问题解决流程问题出现现象临时解决方案复现问题定位问题发生原因优化代码优化后进行压测,上线复盘学完本博文,你的收获排查内存溢出的思路排查内存溢出过程中用到的命原创 2020-10-24 10:57:06 · 17952 阅读 · 35 评论 -
Java线上排错---反编译文件
【前言】 有时候经常会遇到一些诡异的问题:明明在本地运行代码没有问题,服务器代码和本地一样,请求的参数和所连接的数据源都一样为啥服务器上不行那? 如果在测试环境我们可以进行远程调试(参考《idea远程调试》),但是线上应该如何排查? 博主遇到很多次这种情况,最后确定都是由于服务器上代码并没有更新导致的,没有更新原因有很多种比如:运维的部署脚...原创 2019-11-23 19:00:07 · 1675 阅读 · 5 评论 -
BigDecimal 转 String
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 最近遇到一个需求,是给用户发送带钱的短信,本来自己以为挺简单,很快可以搞定,不过在实现的时候遇到一些小问题,自己辗转查和实验最终解决该问题,在此记录一下。【BigDecimal如何转成String】 一、业务需求 ...原创 2019-07-28 23:55:05 · 20575 阅读 · 1 评论 -
SpringBoot实战(七):替代if的优雅方案,提高程序扩展性
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 最近业务由一个国家扩展到多个国家,维护的通知平台也要进行相应的扩展;在扩展的时候应用一个技巧使得程序的扩展性大大提高;【if的优雅替代方案】 一、业务需求 在此以通知平台中短信业务中的校验手机号前缀为例;...原创 2019-06-12 20:19:01 · 2130 阅读 · 0 评论 -
SpringBoot实战(六):Redis Pipeline 轻松实现百倍性能提升
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 今天在优化通知平台的路由部分时发现每次当路由初始化到Redis时异常慢,早就听闻Pipeline是redis批量操作的利器,正好这次用Pipeline进行优化;【整合Redis实战】 一、原理分析 1、单个命...原创 2019-05-28 21:50:12 · 7209 阅读 · 2 评论 -
Error while extracting response for type [class xxx] and content type application/xml;charset=UTF-8
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 最近在用restTemplate进行一次http请求时发现了报错(Error while extracting response for type [class xxx] and content type application/xml;charset=UTF-8)...原创 2019-04-07 17:39:43 · 54753 阅读 · 4 评论 -
SpringBoot实战(五):配置健康检查与监控
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 众所周知,系统预警是一件十分重要的事情,系统一旦出现宕机很有可能许多真金白银就进去了;做好系统的监控预警是一件十分有必要的事情;接下来分享一下SpringBoot自带的健康检查与监控的配置。【配置】 一、说明 ...原创 2019-04-07 15:54:24 · 9369 阅读 · 0 评论 -
SpringBoot实战(二):SpringMvc接收xml请求
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 最近在对接一个第三方系统,需要接收第三方系统的回调,而且格式为XML形式,之前自己一般接收的参数是Json形式,于是乎做个实验验证一下使用SpringMvc接收xml参数请求;【实战】 一、Pom中引入相应的Jar包<depende...原创 2019-01-08 21:09:13 · 10003 阅读 · 4 评论 -
SpringBoot实战(一):使用Lombok简化你的代码
【前言】 Lombok是一个十分不错的工程,项目中引入它后可以使用注解来简化代码,比如最为常见的get、set、tostring等等;【如何使用】 一、项目POM中引入相应的Jar包 <dependency> <groupId>org.projectlombok</groupId> <...原创 2019-01-08 20:41:31 · 4806 阅读 · 2 评论 -
SpringBoot实战(四):SpringBoot整合Redis
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 最近自己在整理过去搭建过的框架,将用到的各个组件进行了梳理并融入自己新建的项目中(https://github.com/dangnianchuntian/springboot),一是对过去项目的整理;二是在整理的过程中查漏补缺;三是以后可以拿过去就用;【整合Re...原创 2019-01-12 17:32:34 · 7981 阅读 · 2 评论 -
SpringBoot实战(三):整合Mybatis配置多数据源
【前言】 最近接到一个新需求,经过分析后做了相应的设计;其中需要在一个项目中操做不同的数据源;于是进行了相关验证;在此记录一下验证过程。【实战多数据源】 一、Pom中引入相应的Jar包<!-- mysql 基础服务--><dependency> <groupId>mysql</group...原创 2019-01-12 16:56:31 · 3955 阅读 · 1 评论 -
SpringBoot实战(八):集成Swagger
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 前后端分离是现在系统的主流,前端人员更多专注于前端功能,后端人员更加关注后端极大提高开发效率;一般情况下前后端由不同的开发团队进行开发;所以免不了要有一份接口文档,手写接口文档,维护接口文档团队间沟通,调试等也是需要花费一定的时间,Swagger就在一定程度上解决了以...原创 2019-06-13 22:28:26 · 1053 阅读 · 0 评论 -
SpringBoot实战(九):标准化json返回值
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 前后端分离是现在系统开发主流模式,上篇博文《SpringBoot集成Swagger》介绍了利器Swagger;这篇接着定义返回Json格式的规范;无规矩,不成方圆;有了好的规范前后端的开发效率将大大提高;【返回Json结果规范化】 一、规范化的...原创 2019-06-19 21:18:50 · 2619 阅读 · 2 评论 -
SpringBoot实战(十):统一异常处理
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 处理好异常对系统有很好的保护作用同时会大大提高用户的体验,对异常统一处理是一个非常实用的技巧,接下来介绍一下如何在系统中对异常进行统一处理;【统一异常处理】 一、未加统一异常处理时 启动程序,并访问http://...原创 2019-06-21 21:53:19 · 1022 阅读 · 0 评论 -
SpringBoot实战(十五):Spring Boot Admin 集成告警模块
【前言】 Spring Boot Admin做为生产级的监控工具,必然自动化告警必不可少;Spring Boot Admin可以十分简单的集成告警组件;最近研究一下集成邮件告警到项目中,在此与大家共享;【集成告警模块】 一、集成告警模块(在此以邮件告警为...原创 2019-09-28 10:04:05 · 6756 阅读 · 1 评论 -
SpringBoot实战(十四):Spring Boot Admin 集成安全模块
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 Spring Boot Admin做为生产级的监控工具,必然不能随便让人去操作以免误操作导致线上问题,所以有必要集成Security组件;Spring Boot Admin可以十分简单的集成这安全组件;已集成项目中,在此与大家共享;【集成安全模块】 ...原创 2019-09-28 09:23:15 · 2421 阅读 · 1 评论 -
SpringBoot实战(十三):Spring Boot Admin 动态修改日志级别
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 之前关于线上输出日志一直有个困惑:如何可以动态调整的日志级别,来保证系统在正常运行时性能同时又能在出现问题时打印详细的信息来快速定位问题;最近研究一下Spring Boot Admin中动态日志级别调整,并集成项目中,在此与大家共享;【动态修改日志级别】 ...原创 2019-09-24 14:53:31 · 5157 阅读 · 6 评论 -
SpringBoot实战(十二):集成 Spring Boot Admin 监控
【前言】 程序开发完实现相应的功能只是一个部分,如何让系统在线上运行更好创造更高的价值是另外一个部分;监控是一个生产级项目避不可少重要组成部分;最近研究一下针对SpringBoot的监控项目---Spring Boot Admin,并集成项目中,在此与大家共享;【Sprin...原创 2019-09-24 13:29:56 · 4395 阅读 · 5 评论 -
logback 日志输出格式
【前言】 日志对一个系统的重要性不言而喻;日志通常是在排查问题时给人看,一个友好的输出样式让人看到后赏心悦目,排查效率通常也会随之提高;下面为大家共享一下通过设置logback日志输出格式,打印出令人欣喜的日志样式。【搞一下日志格式】 一、未指定日志格...原创 2019-09-24 11:17:20 · 5685 阅读 · 1 评论 -
Required request body is missing
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 最近对代码进行统一日志处理,通过拦截器,打印请求日志,方便排查问题,通过拦截器取参数后遇到一个问题:Required request body is missing;在进行了相关实验后最终解决此问题。【解决问题】 一、问题复现 ...原创 2019-08-07 16:07:29 · 21894 阅读 · 8 评论 -
BigDecimal 校验格式
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 最近收到一个需求,在管理后台对系统中的金额进行操作时,对操作的金额需要进行相关校验,如果不校验,在进行相关的计算时就可能会出问题。【BigDecimal 校验格式】 一、业务需求 前端接收到金额传给后端时需要对金...原创 2019-07-29 21:31:32 · 16224 阅读 · 2 评论 -
SpringBoot实战(十一):MultipartException: Could not parse multipart servlet request
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 有个在线上跑了一段时间的上传文件的程序报错,查了些资料,最终通过设置上传文件的临时路径解决此问题,在此与大家共享。【问题解决之路】 一、报错信息 org.springframework.web.multipart.Multi...原创 2019-07-01 22:38:22 · 6151 阅读 · 1 评论 -
Java 巧用占位符
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 最近自己负责设计和开发一套公司的通知系统,比如:短信提醒,推送通知等等;在设计的时候采用了消息模版和变量的方式来组装内容从而提高系统的扩展性。【经典案例】 一、场景简介 1、通知系统一般有模版,比如一个通知模版为 ...原创 2019-01-02 23:19:10 · 12718 阅读 · 2 评论 -
Python发送邮件
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 之前在《Java基础(八):发送邮件》博文中实践了如何利用Java程序去发送邮件,最近自己用Python写了几个小程序;结合自己在工作中经常有在服务器上发邮件的需求,Linux对Python的支持没得说,于是自己通过在网上学习自己实践写了个发送邮件的Python版;...原创 2018-11-03 15:40:13 · 7494 阅读 · 0 评论 -
.Net(一):再识面向对象之C#学习总结
经过一周的学习将32集C#视频拿下,学习不能和驴拉磨一样只知埋头苦跑,而应跑一段再抬头看看前面的方向和总结一下自己跑过的路。故总结一下自己看完视频之后的收获吧! 楚老师讲的挺好的,整体来说自己再看的时候感觉挺亲切的,因为之前自己学过VB,C语言和Java,里面许多语法和思想在这三种语言中找到了它的影子,整体来说大同小异。 总的来说楚老师这套C...原创 2014-11-22 15:59:37 · 19666 阅读 · 60 评论 -
J2SE:Java环境搭建&探究环境变量
【前言】 经过将近半年的学习将BS学习完,经过之前的教训(拖拉不是病,拖起来要了命),于是乎总结完BS后就马不停蹄的奔向了Java的世界。说实话自己还是挺兴奋滴。怎么说那?之前的学习阶段无论是CS还是BS都是在.Net的世界中漫游;抱着世界这么大,我想去看看的心态进入Java世界还是蛮不错滴。【基础环境搭建】 毫无疑问接触一个新的开发模式的时候,首先是要将环境给搭建起...原创 2016-02-20 12:56:15 · 20819 阅读 · 26 评论 -
J2SE:总结—基础很重要哈!
【前言】 最近刚把网上商城学完,翻阅着自己的博客,发现J2SE的阶段,自己还没有总结!俗话说:出来混的迟早要还的!于是乎又将当时自己学习J2SE时记录的笔记溜了一遍总结一下。【内容】 将视频中的内容归了归类整理出一张导图: 阐述: 1.准备:(1)基本环境的配置【可参考:《J2S...原创 2016-05-15 10:33:39 · 20409 阅读 · 20 评论 -
J2EE:赛迪网J2EE视频总结
【前言】 刚开始的时候以为J2EE是具体的编程实现,边学视频边去网上查相关的资料,才发现不是这样的;J2EE其实是一组解决企业级问题的规范,也就是说它只描述了如何解决某类问题,不同的公司根据此规范有不同的实现方式。首先把这个基本定义搞明白了下面的讲解才有意义。【内容】 J2EE是怎么来的那?在企业级开发的过程中经常会遇到一些问题,比如分布式等!一些有心得大牛逐渐的总结...原创 2016-05-29 23:47:37 · 20501 阅读 · 26 评论 -
SSH网上商城:回首网上商城
【前言】进入Java的世界已经学习了两个阶段(J2SE、J2EE),这两个材料都是偏重于理论和基础知识;真正开始项目练习的就是这网上商城;实战经验还是蛮有用滴,一方面可以巩固基础知识,另外可以在项目中学习一些新东西比如:调试、SSH框架等等。【内容】 老规矩,首先来个总结的图: 阐述: 这个项目主要是一个网上购物付款的项目,老师的思路还...原创 2016-06-05 10:50:45 · 19561 阅读 · 18 评论 -
DRP:基本环境安装中遇到那些事儿
【前言】 DRP是一个非常不错的Java入门材料,三个月前小编跟着视频学习,当时记得跟着视频将环境给配置好;后来由于某些原因,就停了一段时间;时隔三个月又将DRP重新给捡起来,如获至宝,为何这么说?在这三个月小编参加一个项目SCPPO,经过项目的洗礼再回头看这些东西自然而然会产生许多共鸣。【那些趣事】 正所谓工欲善其事必先利其器,由于这次参加项目之前重新装系...原创 2016-09-05 23:19:47 · 21034 阅读 · 24 评论 -
Jvm内存分析入门篇
【前言】 最近将Java的内存分析进行了再次学习并进行了总结;Java内存分析一方面对现有系统的优化有着十分重要的指导意义,同时可以让我们以后在进行开发时写出高性能的代码有着重要的借鉴意义。【内容】 一、代码在内存中一步一步是如何执行的? 在进行内存分析学习的时候,自己脑海首先出现便是这个疑问;通过在网上查找以及参考一...原创 2017-01-08 10:45:52 · 17090 阅读 · 23 评论 -
SCPPO(七):安全检测及分析神器—AppScan使用教程
【前言】 最近项目准备验收,所以最近在做项目验收的准备工作;我们公司规定,项目的安全检测必须通过才能进行项目验收;公司的安全部门用的检测软件就是大名鼎鼎的IBM Rational Appscan;在教由安全部门检测外我们进行了自测,因此自己有机会对这款神器进行学习;另外会在接下来的博文中小编为大家分享我们是如何一步步解决项目中的安全问题,敬请期待。【内容】 1、A...原创 2016-07-03 20:14:38 · 34231 阅读 · 22 评论 -
SCPPO(六):源代码管理工具---Team Foundation Server
【前言】 正所谓:工欲善其事必先利其器;最近微信上转的一篇文章特别火,建议大家去瞄一瞄《吴晓波:淘汰人的从来不是年龄,而是工具》;细细数来在这个项目开发过程中,也用到很多工具哎,项目管理软件—Worktitle、源代码管理工具—Team Foundation Server、开发工具—VS2013、SQLServer2012! 自己参与的这个项目主要工作是维护,前辈们已...原创 2016-07-03 18:00:07 · 19972 阅读 · 16 评论 -
SCPPO(三):禅道的使用—项目管理员、开发等人员
【前言】 上篇博文《SCPPO:禅道的使用—管理员》为大家唠了唠管理员的使用,这篇博文接着为大家唠一唠项目管理员、开发等人员的使用。【项目管理员&开发等人员】 1、项目管理人员【在此以项目经理为例】 (1)前提:系统管理员已添加了项目经理。 使用项目经理的账号登录系统:...原创 2016-06-10 22:05:07 · 25341 阅读 · 61 评论 -
SCPPO(二):禅道的使用—管理员
【前言】 上篇博文《SCPPO:禅道的安装》与大家共享了禅道的安装,这篇博客接上篇博客继续唠一下禅道的使用,管理员部分!【管理员使用】 1、说明:该部分介绍三个等级人员的使用规范,分别为管理员、项目管理人员、开发测试等其他人员。 2、管理员: 管理员为系统的最高权限所有者,禅道安装首次使用必须以管理员身份登录;首次登录用户名为...原创 2016-06-10 21:31:03 · 24693 阅读 · 22 评论 -
.Net学习(二):vb.net总结之似曾相识
前言:看完曹主圣的视频之后心里不由的暗喜自己是在考完普通话之后再看的,不然普通话就有点悬了!至今曹老师的那口充满台湾口音的‘栏位’音律仍荡漾在自己耳畔。吸取之前的经验教训这次学习完之后趁热打铁进行了总结,拖拉是一种病,千万不能放弃治疗!!! (一)vb.net视频总结(上) 刚听时“资料库”嘛东东???有点晕,定目细品,哦!!!...原创 2015-01-01 11:22:38 · 18366 阅读 · 28 评论 -
.Net学习(三):初识ASP.Net
【前言】 经过20多天的奋战,将32讲的北大青鸟的ASP.Net视频学习完!回顾这个学习阶段还是蛮精彩滴,现在回过头来梳理一下自己学习到的知识。【总览】 俗话说:一张图胜过千言万语,先来张整体的图来宏观把控一下。【细品】有了宏观把控图后接下来就是该深入各个部位去细细品味。 ·概述: ASP.Net的演变史 ...原创 2015-12-20 20:37:56 · 19681 阅读 · 30 评论 -
用Java8中Stream实现不同集合过滤
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 从开源中国的对Java各个版本使用投票可以看出,目前Java8还是以67%的压倒性优势遥遥领先(Java 11 已正式发布,你在使用 Java 的哪个版本?);众所周知,Stream是Java8中的一大亮点,现在分享一下自己在工作中用它解决一个需求。【业务场景及实...原创 2018-11-10 22:57:06 · 17687 阅读 · 0 评论 -
获得阿里巴巴编码规范技能认证
强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】 通过对阿里巴巴Java开发手册的学习与总结,今天进行了阿里巴巴举办的在线认证考试,并最终通过认证。【认证过程】 1、学习资料: (1)在线---阿里巴巴Java开发手册终极版v1.3.0.pdf ...原创 2018-10-28 15:56:18 · 66838 阅读 · 7 评论