自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

BlueKitty的博客

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

原创 SpringCloud微服务注册调用入门教程

    关于SpringCloud的相关知识在此不做讨论 , 直接一步步完成一套简单完整的SpringCloud微服务注册与调用的Demo .1 . 创建一个maven主工程 , 填写工程信息 , Finish2 . 创建一个新的model作为服务注册中心在这里 , 我们需要用的组件是Spring...

2018-03-29 14:55:47 1940 0

原创 Java8新特性总结 - 序

    Java8已经正式发布很久了 , 从各项新特性来讲 , Java8无疑是重大的版本升级 . Orcale公司于2014年3月18日发布Java8 , 新增了非常多的特性 . 但时至今日 , 大部分人在项目中依然使用着Java7及之前的新特性 . 所谓没有实践就不会深入详细的理解运用 , 故...

2018-02-28 09:49:31 190 2

原创 开发者神器!Windows上最强大的虚拟桌面工具-Dexpot

简介 : 用过Linux和Mac计算机的人都知道 , 这两个系统上都有个多桌面的功能非常使用 . 而在Windows上并没有该项功能 , 虽然目前Win10已经增加了多桌面的程序 , 但使用上仍体验不佳 . 而且Win7系统上也无法享用 . 今天就给大家推荐一款我一直以来在用的Windows上的...

2017-07-27 13:17:08 33170 13

原创 FastJson PropertyNamingStrategy 转换成JSON字符串的四种格式配置及源码解析

FastJson在将bean转成JSON字符串时, 默认使用CamelCase(驼峰命名)的配置; 在1.2.15版本之后,FastJson支持配置PropertyNamingStrategy,有四种配置格式: CamelCase; PascalCase; SnakeCase; KebabCas...

2019-11-25 21:28:51 229 0

原创 SpringBoot中fastJson返回数据展示null字段(响应值为null时字段被过滤)

fastjson将对象转为json字符串给前端的时候, 如果字段的值为null, 则该字段默认被fastJson过滤直接不展示. 而在实际项目中我们往往也是需要展示这个字段的 , 解决即增加一个fastJson序列化配置 , 设置序列化格式. package com.xbz.mvc.confi...

2019-10-15 10:46:29 771 0

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

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

2019-08-02 14:23:19 1865 0

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

在实际项目中 , 往往需要对请求参数做一些统一的操作 , 例如参数的过滤 , 字符的编码 , 第三方的解密等等 , Spring提供了RequestBodyAdvice一个全局的解决方案 , 免去了我们在Controller处理的繁琐 . RequestBodyAdvice仅对使用了@Rqest...

2019-08-02 12:33:23 5268 2

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

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

2019-08-02 11:44:07 273 0

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

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

2019-07-26 17:16:26 319 0

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

package com.xing.dto; import com.xing.common.utils.XDataUtil; import lombok.Data; import java.util.ArrayList; import java.util.List; import java.ut...

2019-07-23 21:56:18 146 0

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

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

2019-07-18 21:49:30 131 0

原创 Spring异常重试机制 - Spring Retry

目录 一 . 引入依赖 二 . 在启用类或业务类上添加@EnableRetry注解启用重试机制(在启用类上添加全局有效 , 在业务类上添加仅当前有效) 三 . 使用@Retryable实现重试 四 . 使用@Recover执行补偿方法 五 . 测试及结果 六 . 常用属性说明 七 ....

2019-07-18 20:47:24 915 0

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

1 . 常规写法 <label><span style="color:red;">* </span>用户名 : </label> <input type="text" value="&quo...

2019-05-21 21:22:05 13497 7

原创 微服务概念详细介绍

目录 一、单机服务到微服务的演变 二、微服务的定义 三、微服务为我们解决了哪些问题 四、当前微服务面临的挑战 五、结语 一、单机服务到微服务的演变 微服务,顾名思义就是“微小的服务”。主要就是从两个方面进行理解,什么是“微”?什么是“服务”?当然,服务的意思很好理解,就是实际工作中的...

2019-04-26 09:50:09 246 0

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

之前的切换环境的方式 , 就是在application.properties中配置 spring.profiles.active=dev , 然后通过修改dev为test或prod来切换项目环境 , 这样做的话每次切换环境都要重新改一下配置 , 而且如果不小心把本地改动提交到中央仓库了 , 可能会...

2019-04-25 17:05:08 3855 2

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

在之前的一篇文章中 , 我们简单了解了一下代理模式(JAVA设计模式 - 代理模式) , 本篇我们来学习一下动态代理的实现原理 , 以及源码是怎样的 . JDK动态代理的主要实现步骤如下 : 1 . 声明一个handler类 , 实现InvovationHandler接口 , 然后重写它的in...

2019-04-23 18:35:00 185 0

原创 JAVA设计模式 - 代理模式

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

2019-04-23 17:41:32 67 0

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

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

2019-04-22 16:24:40 2799 0

原创 MySql计算环比

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

2019-04-16 19:23:48 1763 1

原创 logback配置文件详解

logback配置文件详解 <?xml version="1.0" encoding="UTF-8"?> <!-- 根节点 , logback的全局配置 , 包含3个属性 scan : 当文件发生变更时是否重载 , 默认值tur...

2019-04-16 12:10:08 5486 1

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

1 . 增加LogMdcFilter package cn.xbz.common.filter; import org.slf4j.MDC; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import ...

2019-04-12 12:08:10 4305 0

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

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

2019-04-12 10:28:20 78 0

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

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

2019-04-11 16:28:42 1551 0

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

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

2019-04-11 16:12:10 1749 0

原创 Intellij Idea插件利器推荐大全

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

2019-04-11 15:46:09 546 3

原创 【SpringCloud从0到6】 第二节:Spring Cloud 和 Dubbo

1 . 框架背景 当前主流上较常用的java微服务框架 , 就是cloud和dubbo . dubbo是阿里公司开源的RPC框架 , 背景很优秀 , 技术也是一等一的强 , 在spring cloud之前的年代也是很辉煌的 , 后来阿里停止维护了大概2年多的时间 , 中间有人提了些bug和意见都...

2019-04-10 11:31:24 44 0

原创 Intellij idea利用Statistic插件统计项目代码行数

1 . 插件介绍 统计项目中各个文件的数量,大小,行数,平均等信息 根据扩展名自定义统计详细行数信息 , 包括总行数,代码行数,代码行数占比,注释行数,注释行数占比,空白行数,空白行数占比 自定义选择多个文件 , 统计各个文件信息 本插件需要JDK8或以上版本 2 . 插件安装 利用在线...

2019-04-10 11:07:40 6840 0

原创 Java按行分割文件

方式一 : /** * 按行分割文件 * @param sourceFilePath 为源文件路径 * @param targetDirectoryPath 文件分割后存放的目标目录 * @param rows 为多少行一个文件 */ ...

2019-04-04 14:46:09 1497 0

原创 java高效获取大文件的行数

方式1 : 利用LineNumberReader public static int getFileLineNum(String filePath) { try (LineNumberReader lineNumberReader = new LineNumberReader(new ...

2019-04-01 15:24:39 2827 1

原创 【SpringCloud从0到6】 第一节:初识微服务&微服务的雪崩效应

1 . 传统单机服务 概念 : 所有的功能模块全部写在一起 , 打到一个war包里进行发布 , 除了容器(Tomcat等)以外基本没有其他依赖 . 它的结构图如下 : 单机服务中 , 一个模块包含了UI展示/业务处理/数据交互等所有的内容 . 它主要适用于初创团队或规模不大的公司进行的中小...

2019-03-29 15:18:53 250 0

原创 MySql生成随机数/随机字符串/随机姓名

-- 随机 0-1 select floor(rand() * 2); -- 随机布尔值 select if(floor(rand() * 2) = 1 , '是' , '否'); -- 随机2位小数 select convert(floor(rand...

2019-02-14 13:40:49 3763 0

原创 js中常用的日期处理函数

/** 时间戳转字符串 */ function long2Str(time, format = 'yy-MM-dd HH:mm:ss') { if (!time || time &lt;= 0) { return ''; ...

2019-01-16 15:12:10 940 0

JAVA google验证码kaptcha 属性配置大全

property 说明 取值范围 默认值 kaptcha.border 图片边框 yes , no yes kaptcha.border.color 边框颜色 合法值:r,g,b (and optional alpha) 或者 white...

2019-01-10 18:41:22 2349 0

原创 Java8 Stream常用操作实例

package com.xbz.java8.demo; import java.io.*; import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; import java...

2018-12-25 14:38:52 1038 1

原创 java 枚举的实现原理

在java中 , 枚举实际上是一个特殊的类 public enum TestEnum { VAL1, VAL2; public static void main(String[] args) { System.out.println(TestEnum....

2018-12-18 15:16:10 228 0

原创 java 不定长参数实现原理

public static void main(String[] args) { test("a", "b", "c"); } public static void test(String......

2018-12-18 14:21:56 330 0

原创 java foreach 实现原理

一个老问题 , 增强for循环的实现方式是什么 public static void main(String[] args) { List&lt;String&gt; list = new ArrayList&lt;&gt;();//对集...

2018-12-18 14:06:55 264 0

原创 高级JAVA - 高并发下接口限流 Semaphore

Semaphore的介绍 Semaphore, 是JDK1.5的java.util.concurrent并发包中提供的一个并发工具类 Semaphore字面意思即信号量 , 个人认为比较容易理解的说法应该是 许可证管理器 官方的解释为 Semaphore是一个计数信号量 从概念上将,Se...

2018-12-07 14:42:18 1239 0

原创 常用的对象处理工具类

package com.xutil.data; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import org.apache.commons.lang3.StringUtils;...

2018-11-16 16:16:21 90 0

原创 常用的数学计算工具类

package com.xutil.math; import java.math.BigDecimal; /** * @title 数学计算工具类 * @author Xingbz * @createDate 2018年11月16日 */ public class XMathUtil...

2018-11-16 15:59:32 177 0

提示
确定要删除当前文章?
取消 删除