自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Docker 中 JVM 内存占用问题

一、问题描述 最近在使用Docker Compose 编排 Spring Boot 应用的时候为了避免应用占用过大内存,为其做了内存限制,结果在应用运行时超过了这个限制,container 被docker killed。 #docker compose编排微服务脚本 version: &q...

2018-12-13 22:55:29

阅读数 2190

评论数 0

原创 Spring Cloud Zuul 中 ribbon 和 hystrix 配置说明

本篇主要讲解一下Spring Cloud 中 Zuul 组件的Ribbon和Hystrix的配置。 Ribbon:负载均衡,是针对服务的多实例负载均衡的配置 Hystrix:熔断器,当zuul网关调用具体的业务的时候可能受到网络,代码执行时间等影响长时间无响应,这个时候就需要配置hystrix,...

2018-12-03 21:26:17

阅读数 2668

评论数 0

原创 Spring Cloud Config 多服务公共配置

一、问题描述 使用Spring Cloud Config作为配置中心,其它服务均从配置中心获取配置信息。有这样一个场景,如果多个服务的配置存在公共配置(例如数据库连接配置等),那么可不可以只在公共的文件中配置就可以呢?是可以的,下面提供两种解决方案。 涉及到的服务如下: 服务名 端口号 说...

2018-11-16 18:34:53

阅读数 1099

评论数 1

原创 Spring Boot 集成 Druid

Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。

2020-01-22 17:06:33

阅读数 29

评论数 0

原创 Spring Boot 集成 MapStruct 实现类型转换

MapStruct 是一个属性映射工具,只需要定义一个 Mapper 接口,MapStruct就会自动实现这个映射接口,避免了复杂繁琐的映射实现。MapStruct官网地址: http://mapstruct.org/

2019-12-12 18:02:14

阅读数 162

评论数 0

原创 Spring Boot 集成 swagger2

Swagger2可以轻松的整合到SpringBoot中,并与SpringMVC程序配合组织出强大RESTful API文档。它既可以减少我们创建文档的工作量,也可以让我们在修改代码逻辑的同时修改文档说明。此外Swagger2也提供了强大的页面测试功能来调试每个RESTful API

2019-12-12 16:20:15

阅读数 276

评论数 1

原创 Spring Boot 参数校验

spring boot 实现参数校验,包括自定义规则校验,分组校验,全局异常处理等

2019-12-10 15:29:57

阅读数 210

评论数 0

原创 前端文件下载方案汇总

前端文件下载方案汇总

2019-12-06 14:54:07

阅读数 46

评论数 0

原创 Spring Boot 整合 H2 数据库

一、H2简介 H2数据库特点: H2数据库是一个开源的关系型数据库。H2是一个嵌入式数据库引擎,采用java语言编写,不受 平台的限制,同时支持网络版和嵌入式版本,有比较好的兼容性,支持相当标准的sql标准,支持集群 提供JDBC、ODBC访问接口,提供了非常友好的基于web的数据库管理界面 ...

2019-07-15 11:39:48

阅读数 135

评论数 0

原创 Spring Boot 错误页配置和全局异常处理

一、错误页配置 1.1 错误页控制器 package com.siniswift.efb.acars.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind...

2019-07-12 16:08:03

阅读数 168

评论数 0

原创 FtpClient工具类

1、maven依赖 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</ar...

2019-07-03 21:00:02

阅读数 4579

评论数 2

原创 改善 Java 程序的151个建议之性能与开源工具

一、提升Java性能的基本方法 1.不要在循环条件中计算 如果在循环条件中计算,则每循环一次就要遍历一次,这会降低系统的效率,例如如下代码: while(i < count*2){ //do something } 应该修改为 int total = count * 2; whil...

2019-05-16 16:39:05

阅读数 46

评论数 0

原创 改善 Java 程序的151个建议之泛型和反射

1.Java泛型是类型擦除的 Java的泛型在编译期有效,在运行期被删除,也就是说所有的泛型参数类型在编译后都会被清除掉。 public class Foo{ //listMethod接收数组参数并进行重载 public void arrayMethod(String[] strArray...

2019-05-13 11:19:54

阅读数 37

评论数 0

原创 改善 Java 程序的151个建议之数组和集合(三)

1. 使用shuffle打乱列表 在网站上我们经常看到关键字云和标签云等,用于表明这个关键字或标签经常被查阅。我 使用swap实现: public static void main(String[] arg) { int tagCloudNum = 10; List<St...

2019-04-20 12:33:10

阅读数 32

评论数 0

原创 改善 Java 程序的151个建议之数组和集合(二)

1.推荐使用subList处理局部列表 需求:一个列表100个元素,现在要删除索引位置为20-30的元素,如果使用循环,代码如下: public static void main(String[] arg){ //初始化一个固定长度不可变列表 List<Integer>...

2019-04-14 12:36:45

阅读数 29

评论数 0

原创 改善 Java 程序的151个建议之数组和集合(一)

1. 警惕数组的浅拷贝 public static void main(String[] arg){ Balloon [] a = new Balloon[5]; for(int i = 0;i < 5; i++){ a[i] =...

2019-04-08 21:40:58

阅读数 36

评论数 0

原创 改善 Java 程序的151个建议之字符串

推荐使用String直接量赋值 Java系统中为了避免在一个系统中大量产生String对象,设计了字符串池(也叫字符串常量池)。 它的创建机制为:创建一个字符串时,首先检查池中是否有字面值相等的字符串,如果有则不再创建直接返回池中对象的引用,如果没有则创建,放在池中并返回新建对象的引用。 Stri...

2019-04-02 22:02:33

阅读数 36

评论数 0

原创 Java 泛型

一、概述 1.1 什么是Java泛型 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分...

2019-01-15 20:28:55

阅读数 98

评论数 0

原创 消息中间件-RabbitMQ

一、简介 1.1 什么是AMQP AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件同产品,不同的开发语言等条件的限制。AMQP的主要特...

2018-12-20 22:00:43

阅读数 166

评论数 0

原创 消息中间件-ActiveMQ

一、简介 1.1 什么是 JMS JMS 即 Java 消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java 消息服务是一个与具体平台无关的 API,绝大多...

2018-12-12 23:20:21

阅读数 83

评论数 0

原创 MongoDB 集群模式-分片

MongoDB的集群模式有三种: 主从(Master-Slaver),MongoDB 3.6彻底废弃 副本集(Replica Set) 分片(Sharding) 本章主要讲述分片(Sharding))。 一、分片介绍 1.1 什么是分片 分片是指将数据拆分,将其分散存放在不同的机器上的过程。有...

2018-12-11 09:27:03

阅读数 99

评论数 0

原创 MongoDB 集群模式-副本集

MongoDB的集群模式有三种: 主从(Master-Slaver),MongoDB 3.6彻底废弃 副本集(Replica Set) 分片(Sharding) 本章主要讲述副本集(Replica Set)。 一、副本集介绍 1.1 什么是副本集 MongoDB 副本集是将数据同步在多个服务器...

2018-12-08 08:11:38

阅读数 91

评论数 0

原创 MongoDB MapReduce 聚合操作

MongoDB的聚合操作主要是对数据的批量处理。一般都是将记录按条件分组之后进行一系列求最大值,最小值,平均值的简单操作,也可以对记录进行数据统计,数据挖掘的复杂操作。聚合操作的输入是集中的文档,输出可以是一个文档也可以是多个文档。 MongoDB 提供了三种强大的聚合操作: 单目的聚合操作(S...

2018-12-08 08:06:36

阅读数 109

评论数 0

原创 MongoDB 聚合管道

MongoDB的聚合操作主要是对数据的批量处理。一般都是将记录按条件分组之后进行一系列求最大值,最小值,平均值的简单操作,也可以对记录进行数据统计,数据挖掘的复杂操作。聚合操作的输入是集中的文档,输出可以是一个文档也可以是多个文档。 MongoDB 提供了三种强大的聚合操作: 单目的聚合操作(S...

2018-12-07 09:23:44

阅读数 82

评论数 0

原创 MongoDB 基础知识

一、简介 MongoDB 是一个基于分布式 文件存储的NoSQL数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 关系型数据库(SQLite、Ora...

2018-12-01 16:11:35

阅读数 76

评论数 0

原创 Spring Boot 2.0 整合 Redis(Lettuce)

【Redis 系列】 Redis 数据类型 【Redis 系列】 Redis 数据命令 【Redis 系列】 Redis 发布订阅与事物 一、前言 在前面的几篇文章中简单的总结了一下Redis相关的知识。本章主要讲解一下 Spring Boot 2.0 整合 Redis。Jedis 和 Lett...

2018-11-28 23:26:21

阅读数 1466

评论数 0

原创 Redis 发布订阅与事物

一、Redis的发布和订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息 Redis 客户端可以订阅任意数量的频道 Redis的发布订阅机制包括三个部分,发布者,订阅者和Channel 发布者和订阅者都是Redis客户端,Cha...

2018-11-27 14:40:01

阅读数 128

评论数 0

原创 Redis命令

1. Redis 键基本命令 Redis 键命令用于管理 redis 的键。 语法 Redis 键命令的基本语法如下: 127.0.0.1:6379&gt; COMMAND KEY_NAME 命令 下表列出了常用的 redis keys命令: 序号 命令 描述 1 DEL ...

2018-11-26 17:43:46

阅读数 69

评论数 0

原创 Redis 数据类型

一、简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 1.1 特点 Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持...

2018-11-26 15:58:02

阅读数 70

评论数 0

原创 Spring security oauth2-客户端模式,简化模式,密码模式(Finchley版本)

一、客户端模式原理解析(来自理解OAuth 2.0) 客户端模式(Client Credentials Grant)指客户端以自己的名义,而不是以用户的名义,向&quot;服务提供商&quot;进行认证。严格地说,客户端模式并不属于OAuth框架所要解决的问题。在这种模式中,用户直...

2018-11-22 08:10:04

阅读数 2900

评论数 0

原创 Spring Boot 2.0 整合 Mybatis

Spring Boot 2.0 整合 Mybatis分为两种模式。一种是XML配置,一种是注解。 一、XML配置方式整合 1.1 依赖文件 &amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&q...

2018-11-20 09:13:06

阅读数 373

评论数 0

原创 JWT详解

一、什么是JWT JWT(JSON Web Token) 是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。 二、使用场景(来自理解JWT的使用场景和优劣) 一次性验证: 比如用户注册后...

2018-11-16 09:11:28

阅读数 179

评论数 0

原创 Spring Security OAuth2实现使用JWT

在Spring Security Oauth2-授权码模式(Finchley版本)一文中介绍了OAuth2的授权码模式的实现,本文将在这篇文章的基础上使用JWT生成token。 一、准备工作 下载代码 大家可以在github上下载Spring Security Oauth2-授权码模式(Finc...

2018-11-14 18:46:59

阅读数 3752

评论数 2

原创 携程 Apollo 配置中心分布式部署(Docker)

在Spring Boot 2.0 整合携程Apollo配置中心一文中,我们在本地快速部署试用了Apollo。本文将介绍如何按照分布式部署(采用Docker部署)的方式编译、打包、部署Apollo配置中心,从而可以在开发、测试、生产等环境分别部署运行。 一、准备工作 本文将在CentOS 7.x上部...

2018-11-07 08:16:22

阅读数 532

评论数 0

原创 Spring Boot 2.0 整合携程Apollo配置中心

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。 服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装T...

2018-11-03 11:43:41

阅读数 7031

评论数 2

原创 Spring Security Oauth2-授权码模式(Finchley版本)

一、授权码模式原理解析(来自理解OAuth 2.0) 授权码模式(authorization code)是功能最完整、流程最严密的授权模式。它的特点就是通过客户端的后台服务器,与&amp;quot;服务提供商&amp;quot;的认证服务器进行互动。其具体的流程如下: 具体步骤:...

2018-10-30 18:49:41

阅读数 11171

评论数 5

原创 CAS 4.1.10 版本服务端源码解读

在工作中经常会对CAS进行二次改造适应不同的单点登录场景。这篇文章主要对CAS 4.1.10版本进行源码解读(主要是登录流程)。不同版本可以在github下载。 一、准备 下载下来的cas-overlay-template的依赖中默认只有 &lt;dependency&gt; ...

2018-10-25 16:10:51

阅读数 893

评论数 0

翻译 cas详细登录流程

一、登录流程uml解析 二、登录流程http请求跟踪解析 上图是3个登录场景,分别为:第一次访问www.qiandu.com、第二次访问、以及登录状态下第一次访问mail.qiandu.com。下面就详细说明上图中每个数字标号做了什么,以及相关的请求内容,响应内容。&amp;amp;am...

2018-10-21 12:14:24

阅读数 167

评论数 0

原创 Spring Data JPA复杂查询

在使用Spring Data JPA框架时,可以按照符合框架规则的自定义方法或@Query进行固定条件查询。如果是动态条件查询框架也提供了接口。 public interface JpaSpecificationExecutor&amp;lt;T&amp;gt; 1.符合框架规则...

2018-10-19 14:12:48

阅读数 129

评论数 0

原创 Dubbo-第一个Hello World程序

Dubbo 是阿里巴巴在2011年开源的分布式服务框架,是SOA服务化治理方案的核心框架。Dubbo的整体架构如图所示; Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 Registry: 服务注册与发现的注册中心。 Monitor: 统计服务的调用...

2018-10-16 22:22:54

阅读数 115

评论数 0

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