4 BlueKitty1210

尚未进行身份认证

以微观之处证宏观,借他人之事鉴己身~

等级
TA的排名 1w+

SpringBoot使用ResponseBodyAdvice进行统一响应处理

适用场景,返回给调用方一个统一的响应对象,即Controller中使用了@ResponseBody注解的方法,可以随意返回Object,String,List等,在该对象中进行统一处理并返回packagecom.xbz.common.web.exception;importcom.alibaba.fastjson.JSONObject;importorg...

2019-08-02 14:23:19

SpringBoot使用RequestBodyAdvice进行统一参数处理

在实际项目中,往往需要对请求参数做一些统一的操作,例如参数的过滤,字符的编码,第三方的解密等等,Spring提供了RequestBodyAdvice一个全局的解决方案,免去了我们在Controller处理的繁琐.RequestBodyAdvice仅对使用了@RqestBody注解的生效,因为它原理上还是AOP,所以GET方法是不会操作的.package...

2019-08-02 12:33:23

SpringBoot使用ControllerAdvice和ExceptionHandler进行统一异常处理

@ControllerAdvice和@RestControllerAdvice(两者区别和@Controller/@RestController类似,都只是响应内容上的区别)是Spring提供的一个全局异常处理方案,通过简单的配置我们可以处理项目中意外,省却了在controller中重复写try-catch的繁琐.packagecom.xbz.exceptionhandler....

2019-08-02 11:44:07

高级JAVA - 利用函数式接口实现通用的取并集/交集/差集进阶版

在前文(高级JAVA-利用函数式接口实现通用的取并集/交集/差集)中我们实现了利用函数式接口获取交集/差集,但是只能全部生成,假如我们只需要一个交集的话,所有代码仍然会执行一次.比较浪费资源,故再改进一版packagecom.xing.dto;importcom.xing.common.utils.XDataUtil;importjava.util.Li...

2019-07-26 17:16:26

高级JAVA - 利用函数式接口实现通用的取并集/交集/差集

packagecom.xing.dto;importcom.xing.common.utils.XDataUtil;importlombok.Data;importjava.util.ArrayList;importjava.util.List;importjava.util.function.Consumer;importjava.util.function.Fu...

2019-07-23 21:56:18

高级JAVA - 手写简单的重试组件学习Spring Retry

目录一.定义注解二.利用cglib代理扩展重试业务三.编写代理类,使用自定义的XRetryInterceptor作为拦截器四.编写相关业务方法,测试代码五.测试结果之前讲了SpringRetry的用法及配置,这次通过手写一个简单的组件来学习SpringRetry的实现.源代码:https://download.csdn.ne...

2019-07-18 21:49:30

Spring异常重试机制 - Spring Retry

目录一.引入依赖二.在启用类或业务类上添加@EnableRetry注解启用重试机制(在启用类上添加全局有效,在业务类上添加仅当前有效)三.使用@Retryable实现重试四.使用@Recover执行补偿方法五.测试及结果六.常用属性说明七.常见问题在业务场景中,有时候会遇到异常后需要重复尝试的操作,例如调用三方接口,发送邮...

2019-07-18 20:47:24

CSS 实现必填项前/后添加红色星号

1.常规写法<label><spanstyle="color:red;">*</span>用户名:</label><inputtype="text"value=""/>2.CSS写法(更简洁方便,而且便于统一调整样式)<style>label.xreuiredbefore...

2019-05-21 21:22:05

微服务概念详细介绍

目录一、单机服务到微服务的演变二、微服务的定义三、微服务为我们解决了哪些问题四、当前微服务面临的挑战五、结语一、单机服务到微服务的演变微服务,顾名思义就是“微小的服务”。主要就是从两个方面进行理解,什么是“微”?什么是“服务”?当然,服务的意思很好理解,就是实际工作中的一个完整的生产项目,例如淘宝网站,微信软件等等。然后再让我们通过下文来理解为什么要细化到“微”这个量级...

2019-04-26 09:50:09

Idea结合Maven的profile配置实现动态切换环境(不修改代码)

之前的切换环境的方式,就是在application.properties中配置spring.profiles.active=dev,然后通过修改dev为test或prod来切换项目环境,这样做的话每次切换环境都要重新改一下配置,而且如果不小心把本地改动提交到中央仓库了,可能会影响到其他同事拉取代码.maven中提供了一个profile配置项,可以在打包时动态的指定环境...

2019-04-25 17:05:08

高级JAVA - 动态代理的实现原理和源码分析

在之前的一篇文章中,我们简单了解了一下代理模式(JAVA设计模式-代理模式),本篇我们来学习一下动态代理的实现原理,以及源码是怎样的.JDK动态代理的主要实现步骤如下:1.声明一个handler类,实现InvovationHandler接口,然后重写它的invoke方法,在此方法中完成扩展逻辑.在生成动态代理类之后,原方法的调用就是会执行这个...

2019-04-23 18:35:00

JAVA设计模式 - 代理模式

在对象的一个业务方法完成之后,有时候我们可能需要去添加一些新的功能(前置校验等).但我们又不想更改原来的代码,代理模式就为我们提供了一种解决方案.1.代理模式的定义代理模式就是在不改变原有代码的基础上,实现对目标对象的功能扩展.以现实的情况为例,目前有一个艺人,她会表演和唱歌.现在想扩展一个行为来为这个艺人来接通告,通常情况下我们是不想把这个业务交给原...

2019-04-23 17:41:32

解决layui laydate动态创建多个时不起作用点击无效的问题

最近在一个表单中有个自定义日期选项,用户每点击一次按钮就动态增加一行日期选择框.我选择了laydate框架来完成,但在新生成的日期组件中,除了第一个生成的外,其他的点击和选择都不起作用.或者是闪了一下立刻消失了.通过排查问题及网上搜索终于定位原因.我们在每次动态生成laydate组件时,laydate框架会给input输入框增加一个lay-key="1",这样...

2019-04-22 16:24:40

MySql计算环比

目标:统计每天的点击数量,并计算当天相对前一天的环比增长环比计算公式:(本期数-上期数)/上期数*100,反映本期比上期增长了多少为方便理解,假设当前已经有一张表,里面存了每天的数量CREATETABLE`tb`(`id`int(11)NOTNULLAUTO_INCREMENTCOMMENT'自增主键',`dat...

2019-04-16 19:23:48

logback配置文件详解

logback配置文件详解<?xmlversion="1.0"encoding="UTF-8"?><!--根节点,logback的全局配置,包含3个属性scan:当文件发生变更时是否重载,默认值turescanPeriod:监测文件的间隔时间,即每隔多少时间扫描一次配置文件仅当scan=true时生效.默认间隔时间1...

2019-04-16 12:10:08

logback利用mdc机制为日志增加traceId

1.增加LogMdcFilterpackagecn.xbz.common.filter;importorg.slf4j.MDC;importjavax.servlet.*;importjavax.servlet.annotation.WebFilter;importjava.io.IOException;/***@title为logback日志增加tra...

2019-04-12 12:08:10

【SpringCloud从0到6】 第二节:注册中心 - eureka

从本节开始,我们就正式开始编写一个cloud基础微服务了,为了代码更简洁及更方便入门,在此采用了maven子模块的结构.1.创建maven主模块,配置cloud相关参数pom配置如下:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.or...

2019-04-12 10:28:20

Maven 单独构建多模块项目中的子模块

在多模块的maven项目中,如果需要部署某个子模块,单独构建则会报错,如果构建整个项目,又会非常耗时.maven为自定义构建部分项目提供了支持:-pl,--projects构建指定的模块,模块间用逗号分隔;适合无依赖的项目-am,--also-make(常用)同时构建所列模块的依赖模块,比如A依赖B,B依赖C,构建B,同时构建C-am...

2019-04-11 16:28:42

屏蔽Idea中"不合理"的提示警告

当然,Idea的提示警告功能是为了让代码更安全标准,但在实际编码中,我们可能不需要这些善意的提醒.所以我们要设法屏蔽它.在Settings->Editor->Inspections我们可以更改提示/警告的设置.1.提示public方法转为private方法2.提示某个参数替换为常量...

2019-04-11 16:12:10

Intellij Idea插件利器推荐大全

名称 简介 快捷键/说明(个人) 插件介绍地址 推荐星级 Jrebel 热部署,修改类文件即时生效 地址 ★★★★★ KeypromoterX 基于Keypromoter,提示各种操作对应的快捷键(如果有),把相关操作自定义为快捷键 地址 ★★★★★ FreeMyBatisplugin...

2019-04-11 15:46:09

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。