自定义博客皮肤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的博客

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

  • 博客(116)
  • 资源 (15)
  • 收藏
  • 关注

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

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

2018-03-29 14:55:47 2486

原创 Java8新特性总结 - 序

    Java8已经正式发布很久了 , 从各项新特性来讲 , Java8无疑是重大的版本升级 . Orcale公司于2014年3月18日发布Java8 , 新增了非常多的特性 . 但时至今日 , 大部分人在项目中依然使用着Java7及之前的新特性 . 所谓没有实践就不会深入详细的理解运用 , 故今天抛砖引玉 , 和大家一起探讨Java8在实际代码中的运用 .所有示例代码打包下载 : 点击打开链接...

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

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

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

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

原创 SpringBoot使用CommandLineRunner和ApplicationRunner执行初始化业务

业务场景在业务场景中,有些情况下需要我们一启动项目就执行一些操作.例如数据配置的相关初始化,通用缓存的数据构造等.SpringBoot为我们提供了CommandLineRunner和ApplicationRunner两个接口来实现这个功能.接口说明CommandLineRunner和ApplicationRunner两个接口除了参数不同,其他基本相同,可以根据实际需求选择使用.CommandLineRunner中的run方法参数为String..., ApplicationRunn...

2020-07-20 11:12:58 1718

原创 线程池异步线程中再次获取线程池资源的问题

问题描述在线上发生的一次问题, 在场景中有这样一个业务, 需要异步执行一个主任务, 主任务中又包含着N个子任务,为了整个主任务能够快速处理, 又将子任务按照数量获取线程资源异步处理, 即异步线程A中再异步调用A1,A2,A3. A可能同时存在多个.实际场景中, 由于系统线程池分配数量较小, 且一段时间内先后启动了多个主任务, 耗时的主任务中又用子任务取申请线程 导致线程池资源耗尽问题原因1. 主任务是从线程池中获取的线程资源, 同时主任务比较耗时​2. 每个主任务中包含的N的子任务, 会再.

2020-07-17 18:58:54 1736 3

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

FastJson在将bean转成JSON字符串时, 默认使用CamelCase(驼峰命名)的配置;在1.2.15版本之后,FastJson支持配置PropertyNamingStrategy,有四种配置格式: CamelCase; PascalCase; SnakeCase; KebabCase.1 . 配置项内容配置方式 说明 Java属性名 JSON属性名 C...

2019-11-25 21:28:51 4069

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

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

2019-10-15 10:46:29 5897

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

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

2019-08-02 14:23:19 7570

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

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

2019-08-02 12:33:23 27866 7

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

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

2019-08-02 11:44:07 1289

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

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

2019-07-26 17:16:26 704

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

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

2019-07-23 21:56:18 566

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

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

2019-07-18 21:49:30 679

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

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

2019-07-18 20:47:24 2758

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

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

2019-05-21 21:22:05 39323 6

原创 微服务概念详细介绍

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

2019-04-26 09:50:09 2162

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

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

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

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

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

2019-04-23 18:35:00 488

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

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

2019-04-23 17:41:32 288

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

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

2019-04-22 16:24:40 7484 1

原创 MySql计算环比

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

2019-04-16 19:23:48 8153 5

原创 logback配置文件详解

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

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

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

1 . 增加LogMdcFilterpackage cn.xbz.common.filter;import org.slf4j.MDC;import javax.servlet.*;import javax.servlet.annotation.WebFilter;import java.io.IOException;/** * @title 为logback日志增加tra...

2019-04-12 12:08:10 14629 1

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

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

2019-04-12 10:28:20 247

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

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

2019-04-11 16:28:42 9169

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

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

2019-04-11 16:12:10 4234

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

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

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

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

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

2019-04-10 11:31:24 140

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

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

2019-04-10 11:07:40 12133 1

原创 Java按行分割文件

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

2019-04-04 14:46:09 3411

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

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

2019-04-01 15:24:39 10889 3

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

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

2019-03-29 15:18:53 695

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

-- 随机 0-1select floor(rand() * 2);-- 随机布尔值select if(floor(rand() * 2) = 1 , '是' , '否');-- 随机2位小数select convert(floor(rand() * 70 + 30) / 100,decimal(10,2));-- 随机N位字符串select substr(md5(rand(...

2019-02-14 13:40:49 9434

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

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

2019-01-16 15:12:10 2289

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

property说明取值范围默认值kaptcha.border图片边框yes , noyeskaptcha.border.color边框颜色合法值:r,g,b (and optional alpha) 或者 white,black,blueblackkaptcha.border.thickness边框厚度&amp;gt;01kaptcha.ima...

2019-01-10 18:41:22 8158 1

原创 Java8 Stream常用操作实例

package com.xbz.java8.demo;import java.io.*;import java.lang.management.ManagementFactory;import java.lang.management.RuntimeMXBean;import java.lang.reflect.Array;import java.nio.charset.Standa...

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

原创 java 枚举的实现原理

在java中 , 枚举实际上是一个特殊的类public enum TestEnum { VAL1, VAL2; public static void main(String[] args) { System.out.println(TestEnum.VAL1); }}编译后内部实现的方式//继承java.lang.Enum并声明为...

2018-12-18 15:16:10 434

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

public static void main(String[] args) { test("a", "b", "c"); } public static void test(String... strs) { System.out.println(strs.getClass().getSimpleName()); Sys...

2018-12-18 14:21:56 814

原创 java foreach 实现原理

一个老问题 , 增强for循环的实现方式是什么 public static void main(String[] args) { List&lt;String&gt; list = new ArrayList&lt;&gt;();//对集合 , 本质上是iterator迭代器 list.add("A"); list.add("B"); ...

2018-12-18 14:06:55 635

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

Semaphore的介绍Semaphore, 是JDK1.5的java.util.concurrent并发包中提供的一个并发工具类Semaphore字面意思即信号量 , 个人认为比较容易理解的说法应该是 许可证管理器官方的解释为Semaphore是一个计数信号量 从概念上将,Semaphore包含一组许可证 如果有需要的话,每次调用acquire()方法都会阻塞,直到获取一个可...

2018-12-07 14:42:18 2284

Spring Retry实例与原理源码

在业务场景中 , 有时候会遇到异常后需要重复尝试的操作 , 例如调用三方接口 , 发送邮件/短信 , 推送消息等等 . Spring 提供了Retry组件 , 很方便的解决了上述问题

2019-07-18

Dubbo新手入门实例HelloWorld(zookeeper)源码低分版

最近刚接触dubbo,新手入门遇到好多麻烦,网上搜来的入门demo也是各种问题,百般周折自己终于倒腾出来了,与大家共享~ 之前资源下载量过多导致分高 , 现提供一个低分版

2018-12-25

SpringCloud配置详解

SpringCloud配置文件中的各项参数最完整最详细的说明 , 鉴于博客的格式不是太友好 , 特提供重新排版的jpg和pdf版本

2018-05-12

SpringCloud微服务注册调用Demo

SpringCloud微服务注册调用入门实例 , 简单明了 , 教程参考https://blog.csdn.net/xingbaozhen1210/article/details/79741709

2018-03-29

Java8 Demo代码示例

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

2018-02-28

zookeeper-3.4.8解压即用低分版

最近刚接触dubbo,新手入门遇到好多麻烦,网上搜来的入门demo也是各种问题,百般周折自己终于倒腾出来了,与大家共享~ 本zookeeper已经编辑,解压到英文路径下直接运行bin/zkServer.cmd即可(之前版本资源分过高)

2018-02-28

idea自定义方法注释操作视频

idea自定义方法注释操作视频 , 一步步教你如何在idea中使用自定义的方法注释,相关文章内容请参考http://blog.csdn.net/xingbaozhen1210/article/details/79042130

2018-01-12

XshellXftp绿色整合版

Xshell 和 Xftp 都是 NetSarang 出品的优秀网络管理、安全传输工具。Xshell 是一个免费的安全终端仿真器,可以作为 SSH、TELNET 或 RLOGIN 的终端模拟,能够从 Windows 平台安全连接 Linux 服务器,Xftp 则是安全传输客户端,支持 FTP 和 SFTP 协议,两者都支持标签化的会话窗口 . 本资源整合了两者17年10月最新的绿色便携版本 , 并增加了去除错误弹框的小问题 , 方便各位开发者使用

2017-11-14

IntelliJ IDEA中文教程从入门到进阶

idea是目前最智能的开发工具 , 但入门门槛相对较高,尤其是从eclipse转过来的人来说有很多别扭之后.该文档从入门到高级进阶等各个方面详细的阐述了idea的使用 , 操作技巧等.非常实用

2017-10-30

catalina&servlet-api.jar

在Eclipse中缺省servlet-api.jar包,由于servlet-apbi.jar以及jsp-api.jar这两个包包含在Apache Tomcat中,所以提示这两个包缺省而出现错误的情况下,执行Build Path-Configure Build path-Libraries-Add Library-server Runtime就正常了

2017-09-27

阿里巴巴Java开发手册(终极版)

《阿里巴巴Java开发手册》系统性地从编程、数据库、异常日志、工程结构、安全、单元测试六大方面,总结出优秀Java开发者必备的技术素养。时值手册发布一周年之际,阿里官方对外正式公开《阿里巴巴Java开发手册》终!极!版!!! 该版本将是阿里官方对外释放的最后一个PDF版本,也是史上内容最全、修正最为彻底的一个版本,并且史无前例地增加了单元测试规约,绝对值得珍藏。

2017-09-27

FSCapture8.5最新中文绿色破解版

FSCapture是目前盛行的最牛的桌面工具 , 仅10M左右的大小 , 具备了截图(全屏截图 , 指定区域截图 , 滚动截图) , 桌面标尺 , 放大镜 ,取色器 , 屏幕录像 , GIF录制等等非常好用的小工具 . 本资源为网络上所能搜集的最新版 , 支持中文 , 绿色免安装 , 解压即可使用.非常方便; 使用教程: http://jingyan.baidu.com/article/219f4bf7cba59ade442d38f6.html

2017-09-27

java反编译工具jd-gui绿色中文版

最好用的java反编译工具 , 可以将.class文件甚至于一个jar包直接反编译为java文件 , 方便的查看源码 , 用于深层研究调试等. 而且jd-gui是为数不多的中文版 , 更方面使用.该资源特提供了绿色版本 , 解压即可使用

2017-09-27

standard.jar

使用JSP标准标签的时候,需要在web项目中使用这两个jar包 , tomcat8及以上版本中默认取消了standard.jar这个包 , 但有时候我们往往又需要他 . 使用方法 : 放在项目的web-inf/lib文件夹下即可。

2017-09-27

Dubbo新手入门实例HelloWorld(zookeeper)源码

最近刚接触dubbo,新手入门遇到好多麻烦,网上搜来的入门demo也是各种问题,百般周折自己终于倒腾出来了,与大家共享~

2016-05-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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