7 Ricky_Fung

尚未进行身份认证

「Stay hungry. Stay foolish.」

等级
博文 513
排名 400

RocketMQ报No route info of this topic

最近某天突然收到报警邮件,线上某个应用发送MQ消息报错,完整异常栈如下:2018-04-0818:17:44.126|DubboServerHandler-10.141.6.116:20968-thread-172|ERROR|com.xxx.node.application.mq.MqMessageProcessor|发送MQ消息keys:26异常com.aliba...

2018-04-10 14:27:47

Spring Boot教程 - Spring Boot Profiles实现多环境下配置切换

在后端开发中,应用程序在不同的环境可能会有不同的配置,例如数据库连接、日志级别等,开发,测试,生产每个环境可能配置都不一致。使用SpringBoot的Profile可以实现多场景下的配置切换,方便开发中进行测试和部署生产环境。下面就大致介绍一下yml配置文件跟properties配置文件怎么使用profile配置不同环境的配置文件。开发环境JDK1.8Maven3.xSpringBo

2017-11-18 17:34:29

Spring Boot教程 - Spring Boot集成Mybatis(注解配置)

上一篇文章:介绍了SpringBoot集成Mybatis基于XML方式的配置,本文将重点介绍注解方式配置Mybatis。开发环境JDK1.8Maven3.3SpringBoot1.5.8.RELEASEMybatis3.4.4配置首先引入spring-boot-starter-parent:<!--InheritdefaultsfromSpringBo

2017-11-18 16:45:27

Spring Boot教程 - Spring Boot集成Mybatis(XML方式)

项目开发中不可避免需要跟数据库打交道,作者开发的项目的中广泛使用Mybatis作为ORM框架。本文主要讲解在SpringBoot项目中如何整合Mybatis。开发环境JDK1.8SpringBoot1.5.8.RELEASEMybatis3.4.4

2017-11-18 16:06:58

图片添加水印(Java 实现)

某些应用场景下需要对图片加上水印防止盗用,例如微博用户图片。Java中实现添加水印需要用到BufferedImage、Graphics2D和ImageIO类。1.添加文字水印importjava.awt.AlphaComposite;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics2D;import

2017-05-12 19:31:41

Spring事务系列 - Spring 事务管理

一、Spring的编程式事务管理1.基于底层API的编程式事务管理根据PlatformTransactionManager、TransactionDefinition和TransactionStatus三个核心接口,我们完全可以通过编程的方式来进行事务管理。代码如下:@ServicepublicclassBankServiceImplimplementsBankService

2017-05-12 18:20:51

Spring MVC HandlerInterceptor 实现原理(源码)

上一篇文章中介绍了SpringMVCHandlerInterceptor的使用和应用场景,本篇中我们将结合SpringMVC源码来研究一下其内部实现。本文分析使用SpringFramework源码为SpringFramework4.3.4.RELEASE。首先,我们看一下org.springframework.web.servlet.DispatcherServletdo

2017-04-06 00:33:41

Spring MVC 拦截器(HandlerInterceptor)使用

最近需要画UML图,从网上找了几个工具软件,比较之后发现StarUML2很不错,支持UML2.0。StarUML2iscompatiblewithUML2.xstandardandsupportstotally11kindsofUMLdiagrams:Class,Object,UseCase,Component,Deployment,Compo

2017-02-28 16:39:52

MySQL 乐观锁与悲观锁

MySQL乐观锁与悲观锁

2017-02-24 15:36:51

MyBatis源码剖析 - MyBatis 插件之拦截器(Interceptor)实现原理

在上一篇文章:MyBatis教程-MyBatis插件(Plugins)开发中已经介绍了如何去开发一个MyBatis插件,本文将结合MyBatis源码来揭秘MyBatisPlugins内部实现原理。Mybatis3插件采用责任链模式,通过动态代理组织多个拦截器(插件),通过这些拦截器可以改变Mybatis的默认行为(诸如SQL重写之类的)。本文分析使用的MyBatis源代码版本为3.

2017-02-18 12:18:49

MyBatis 教程 - MyBatis插件(Plugins)开发

MyBatis允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis允许使用插件来拦截的方法调用包括:Executor(update,query,flushStatements,commit,rollback,getTransaction,close,isClosed)ParameterHandler(getParameterObject,setP

2017-02-17 20:13:22

使用SnakeYAML读取yaml配置文件

很多应用都开始使用YAML作为程序配置文件,关于YAML详细介绍可以参考YAML1.2(3rdEdition),本文使用SnakeYAML。示例sample.ymlversion:1.0released:2017-02-14#Connectionparametersconnection:driverClass:com.mysql.jdbc.Driverurl:

2017-02-14 16:23:08

maven javadoc plugin build fails with Java 8 when Javadoc tags are incomplete

本地开发环境JDK版本是1.7,生成Javadoc没有问题,在测试环境使用Jenkins自动构建时报错(测试服务器JDK版本是1.8),log如下:/home/andreas/workspaces/cdm/cdm-vaadin/src/main/java/eu/etaxonomy/cdm/vaadin/ui/ConceptRelationshipUIRedirect.java:28:error:

2017-01-20 18:09:28

从零开始实现RPC框架 - RPC原理及实现

RPC概述RPC(RemoteProcedureCall)即远程过程调用,允许一台计算机调用另一台计算机上的程序得到结果,而代码中不需要做额外的编程,就像在本地调用一样。现在互联网应用的量级越来越大,单台计算机的能力有限,需要借助可扩展的计算机集群来完成,分布式的应用可以借助RPC来完成机器之间的调用。RPC框架原理在RPC框架中主要有三个角色:Provider、Consumer和Registr

2017-01-19 14:30:07

Spring Boot学习笔记 - 整合Swagger2自动生成RESTful API文档

在App后端开发中经常需要对移动客户端(Android、iOS)提供RESTfulAPI接口,在后期版本快速迭代的过程中,修改接口实现的时候都必须同步修改接口文档,而文档与代码又处于两个不同的媒介,除非有严格的管理机制,不然很容易导致代码与接口文档不一致现象。本文将介绍RESTfulAPI的重磅好伙伴Swagger2,它可以轻松的整合到Spring生态链中,并与SpringMVC程序配合组织出

2017-01-04 19:28:17

Java注解处理器 - 五分钟快速入门

基本概念Java注解(Annotation)分为两类:编译时(Compiletime)处理的注解和在运行时(Runtime)通过反射机制运行处理的注解。本文将重点介绍在编译时(Compiletime)处理的注解,关于在运行时(Runtime)通过反射机制运行处理的注解,比较简单这里不做介绍大家可以自行找资料学习。注解处理器(AnnotationProcessor)是javac的一个工具,它用

2017-01-01 21:13:38

Spring 动态数据源和AOP实现数据库读写分离

互联网架构演进中数据库优化是不可或缺的一环,数据库层面优化分为两个阶段:读写分离、分库分表。今天要说的是数据库读写分离技术,其原理就是一个Master数据库,多个Slave数据库。Master库负责数据更新和实时数据查询,Slave库当然负责非实时数据查询。因为在实际的应用中,数据库都是读多写少(读取数据的频率高,更新数据的频率相对较少),而读取数据通常耗时比较长,占用数据库服务器的CPU较多,

2016-12-30 19:17:42

RESTful API接口设计

RESTfulAPI接口设计URL设计URL(Uniform/UniversalResourceLocator)既统一资源定位符。数据交换格式可选:XML、JSON,ProtobufXML、JSON大家应该都很熟悉了,这里介绍一下Protobuf。ProtocolbuffersareGoogle’slanguage-neutral,platform-neutral,

2016-12-29 15:10:56

常见的负载均衡算法及其代码实现

什么是负载均衡负载均衡,英文名称为LoadBalance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡能够平均分配客户请求到服务器阵列,借此提供快速获取重要数据,解决大量并发访问服务问题,这种集群

2016-12-29 10:35:56

Spring教程-Spring Bean的生命周期

SpringBean的生命周期

2016-12-18 10:17:48
奖章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!