自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CatalpaFlat的博客

一个具有强迫症的程序猿

  • 博客(51)
  • 收藏
  • 关注

原创 Spring AOP @PathVariable和@RequestParam 参数进行校验(valid)

在上一篇文http://blog.csdn.net/dushiwodecuo/article/details/79080237,通过AOP对@RequestBody注解进行的参数进行校验 那么对于 @PathVariable和@RequestParam 却没有对应的spring mvc 默认自带的校验机制 @Valid + BindingResult。那么此时该校验的话,只能代码上逐一进行校

2018-01-20 16:50:17 7230 1

原创 Spring AOP 实现“切面式”valid校验

why: 为什么要用aop实现校验? answer: spring mvc 默认自带的校验机制 @Valid + BindingResult, 但这种默认实现都得在Controller方法的中去接收BindingResult,从而进行校验. eg: if (result.hasErrors()) { List allErrors = result.get

2018-01-16 22:57:30 3081

原创 Gradle构建SpringBoot并打包可运行的jar配置

使用Gradle构建项目,继承了Ant的灵活和Maven的生命周期管理,不再使用XML作为配置文件格式,采用了DSL格式,使得脚本更加简洁。 构建环境: 1. jdk1.6以上,此处使用1.8 2. Gradle 4.4.1 3. SpringBoot 4. idea 一、下载并安装GradleGradle官网 1.下载Gradle下载G

2018-01-05 16:15:33 11671 1

原创 Spring Security TokenStore实现3+1详解

TokenStore:Persistence interface for OAuth2 tokens.(对于OAuth2令牌持久化接口) 官方文档 TokenStore 的默认实现有三种: - InMemoryTokenStore - JdbcTokenStore - JwtTokenStore此外,将会根据TokenStor的特性多自定义一种实现——RedisTok

2017-12-29 11:03:55 11268 6

原创 Spring Security 核心过滤器链分析

前言: 在熟悉Spring Security的使用和基本操作后,有时根据项目需求,我们需要在security原有的过滤器链中,添加符合我们自己的过滤器来实现功能时,我们就必须得先了解security的核心过滤链的流程和每个过滤器的各自功能,以此,我们才可以在特点的过滤器前后加入属于我们项目需求的过滤器。一、Filter Chain 图解在配置了spring security了之后,会在运

2017-12-27 15:49:37 20282

原创 Spring Security OAuth2 深入解析

Spring Security OAuth2 深入解析一、OAuth2 概要1.1.OAuth2基本流程话不多说,先上图: 分析一波: client:第三方应用(即App或向外提供接口)Resource Owner:资源所有者(即用户)Authentication Server:授权认证服务(发配Access Token)Resource Server:资源服务器(存储用户资源信息等

2017-12-22 16:10:31 6944 2

原创 spring security 自定义认证登录

spring security 自定义认证登录1.概要1.1.简介spring security是一种基于 Spring AOP 和 Servlet 过滤器的安全框架,以此来管理权限认证等。 1.2.spring security 自定义认证流程1)认证过程 生成未认证的AuthenticationToken ↑(获取信息) (根据

2017-12-21 17:38:05 3749

原创 Spring AOP 后置通知修改响应httpstatus

Spring AOP 后置通知修改响应httpstatus1.定义Aspect/** * 响应体切面 * 后置通知修改httpstatus * * @author : CatalpaFlat */@Component@Aspectpublic class ApiResponseAspect { private Logger logger = LoggerFactory.get

2017-12-16 10:13:13 2413

原创 SSM框架极简便携式集成Quartz任务调度

SSM框架整合Quartz任务调度SSM集成Quartz,实际操作只需两步: 1.配置自定义的Job(添加job的相关属性,修改任务方法) 2.将Job注册到JobRegister 即可在项目中运行属于你的Quartz任务调度,方便实用,易于操作。1.添加maven依赖<dependency> <groupId>org.quartz-scheduler</groupId> <artif

2017-11-17 11:39:42 1178

原创 自定义Quartz超实用工具类

自定义Quartz超实用工具类1.添加maven依赖<!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz --><dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>${q

2017-11-17 11:12:28 822

原创 深入解读Quartz任务调度器

深入解读Quartz任务调度器1.Quartz简介1.1.概要  Quartz是OpenSymphony提供的强大的开源任务调度框架。     官网:http://www.quartz-scheduler.org   纯Java实现,精细控制排程。 1.2.Quartz特点强大的调度能力灵活的应用方式强大的分布式和集群能力1.3.Quartz设计模式Builder模式组件模式Fa

2017-11-15 17:26:12 2762 1

原创 SSM框架基于swagger2实现API管理

SSM框架基于swagger实现API管理swagger官网: https://swagger.io/docs/ 1.添加maven依赖<!--swagger--><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${swaggger.v

2017-11-14 14:21:16 2393

原创 SSM框架 基于spring-AOP 实现requet参数日志记录

SSM框架 基于spring-AOP 实现requet参数日志记录1.参数类型from表单提交,可以从request的getParameterMap()获取raw提交(对象类型提交),则得从request的getReade()或getInputStream()2.添加maven依赖<dependency> <groupId>net.sf.json-lib</groupId> <arti

2017-11-13 10:58:27 2078

原创 SSM框架之SpringAOP快速搭建

SSM框架之SpringAOP快速搭建有关AOP的相关解析在该文章中以实例方式阐述: http://blog.csdn.net/dushiwodecuo/article/details/781808031.添加maven依赖<!--spring-aop--><dependency> <groupId>org.springframework</groupId> <artifactId>sp

2017-11-11 16:42:08 674

原创 自定义超实用Redis工具类(满足对象,list,map等类型)

自定义超实用Redis工具类(满足对象,list,map等类型)该工具类,可以存储对象、list,map等各种数据类型到Redis中,大大有效提高开发效率。1.添加maven依赖 <!--序列化工具--> <dependency> <groupId>org.objenesis</groupId> <artifactId>objenesis</artifa

2017-11-11 15:12:23 908

原创 SSM框架快速集成redis

SSM框架快速集成redis1.添加maven依赖<!-- config redis data and client jar--><dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>${spring.redis

2017-11-11 15:00:42 8285 4

原创 快速集成搭建SSM框架

快速集成搭建SSM框架附上项目结构图: 1.添加maven依赖<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://m

2017-11-10 00:00:48 409

原创 虚拟机CentOS6.7 快速安装redis

虚拟机CentOS6.7 快速安装redis1.配置编译环境yum -y install gcc-c++2.下载redis安装包wget http://download.redis.io/releases/redis-3.2.8.tar.gz3.解压源码tar -zxvf redis-3.2.8.tar.gz -C /usr/local/4.进入源码目录cd /usr/local/redis-

2017-11-09 23:10:27 439 1

原创 虚拟机快速搭建CentOS,并解决网络问题

虚拟机快速搭建CentOS,并解决网络问题1.搭建环境:虚拟机:VMware Workstation12镜像:CentOS-6.7-x86_64-bin-DVD1.iso网络设配器:NAT模式主机:window7Vmware提供了三种网络连接模式: 1.bridged(桥接模式):默认使用VMnet0,不提供DHCP服务 简述:虚拟机和宿主计算机处于同等地位,虚拟机就像是一台真实主机一

2017-11-09 20:06:43 355

原创 Nginx rewrite深入解读

Nginx rewrite深入解读1.什么是rewrite官方解读:nginx的重写模块(rewrite)是一个简单的正则表达式匹配与一个虚拟堆叠机结合。 个人解读:nginx的rewrite是结合正则表达式和标志位实现url重写、改变以及重定向。如:域名跳转,防盗链,反向代理,各种跳转(跳转维护界面,前端跳转,基于uri跳转,基于目录跳转等)2.rewrite的支撑源头nginx通过ngx_ht

2017-11-02 11:36:16 450

原创 Nginx 日志配置详情解析

Nginx 日志配置详情解析  在使用nginx进行服务器管理时候,日志对于统计、审查、排错来说非常有利。   nginx日志相关的配置有:access_log(访问日志)、log_format(日志格式)、open_log_file_cache、log_not_found、log_subrequest、rewrite_log、error_log。   nginx有一个非常灵活的日志记录模式,每

2017-11-01 12:36:30 535

原创 Nginx 的ngx_http_core_module模块

Nginx 的ngx_http_core_module模块ngx_http_core_module模块处理请求时,会有大量的变量,这些变量可以通过访问日志来记录,也可以用于其他nginx模块接收。在对请求做策略入改写等到都会使用到一些变量。以下为ngx_http_core_module模块提供的变量总结:$arg_PARAMETER HTTP 请求中某个参数的值,如/get?value=a.ch

2017-11-01 11:07:18 694

原创 Nginx 动态添加模块

Nginx 动态添加模块nginx模块依赖:nginx的一些模块需要第三方支持,例如gzip模块需要zlib库,rewrite模块需要pcre库,ssl功能需要openssl库。 根据需求添加不同模块 例添加echo模块:1.下载并安装nginx详情请看:http://blog.csdn.net/dushiwodecuo/article/details/783934542.查看nginx已安装的

2017-11-01 10:36:54 1820

原创 Nginx location配置解析

Nginx location配置解析1.语法规则location [=|~|~*|^~]/uri/{...}= 表示精确匹配,这个优先级最高的^~ 表示uri以某个常规字符串开头,理解为匹配 url路径即可,Nginx不对url做编码,因此请求为/static/80%/aa,可以被规则^~/static/ /aa(注意中间是空格)~ 表示区分大小写的正则匹配、~* 表示不区分大小写的正则

2017-10-31 17:40:56 440

原创 Nginx root&alias文件路径配置解析

Nginx root&alias文件路径配置解析nginx在指定文件路径有两种方式root和alias,这两种的主要区别在于nginx如何解析location后面的uri,这会使两者分别以不同的方式请求映射到服务器的文件上。1.root语法的使用【root】 语法: root path 默认值: root html 配置段: http/server/location/if 例子:loca

2017-10-31 15:08:54 538

原创 Nginx配置多虚拟主机(即配置域名)

Nginx配置多虚拟主机(即配置域名)1.存放站点(即项目)站点的根目录和域名相同1.1.创建a域名存放地址mkdir -p /data/site/a.chen.com1.2.创建a域名的首页cd /data/site/a.chen.comtouch inde.htmlecho 'this is a from chen com...' > /data/site/a.chen.com/inde.h

2017-10-30 17:01:29 475

原创 服务器快速集成Nginx

服务器快速集成Nginx1.安装依赖1.1.pcre重定向依赖yum -y install pcre*PCRE(Perl Compatible Regular Expressions)是一个Perl库,不止具有http重定向依赖,还包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。1.2.openssl(http/ht

2017-10-30 15:24:23 620

原创 SpringBoot 集成WebSocket广播模式

SpringBoot 集成WebSocket广播模式1.添加maven依赖<!--thymeleaf模板依赖--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!--web依赖

2017-10-26 20:00:14 872

原创 SpringBoot 快速集成RabbitMQ

SpringBoot 快速集成RabbitMQ1.添加maven依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId></dependency><dependency> <groupId>org.springframewo

2017-10-25 15:47:51 342 1

原创 RabbitMQ 快速安装

RabbitMQ1.RabbitMQ概述  MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收

2017-10-25 15:33:11 317

原创 SpringBoot 快速实现WebSocket

SpringBoot 快速实现WebSocket1.添加Maven依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope></dependency><dependency>

2017-10-25 10:41:00 1229

原创 SpringBoot 基于swagger实现RESTfulApi风格

SpringBoot 基于swagger实现RESTfulApi风格1、swagger概述  Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。   Swagger能够实现接口API和文档保持一致性。2、添加ma

2017-10-24 15:02:49 973

原创 SpringBoot 基于Redis快速实现消息队列

SpringBoot基于Redis快速实现消息队列一. 常用消息队列工具  目前常用的消息队列大概有三种类型,RabbitMQ等AMQP系列, Kafka, Redis等kev value系列,它们的使用场景分别是:   1.RabbitMQ: 相对重量级高并发的情况,比如数据的异步处理 任务的串行执行等.   2.Kafka: 基于Pull的模式来处理,具体很高的吞吐量,一般用来进行 日志的存

2017-10-24 11:54:03 21993 5

原创 分布式之消息中间件

分布式之消息中间件 目录 * 1.消息中间件概述 * 2.消息中间件使用场景 * 3.消息中间件原理 * 4.消息中间件传递模式   * 4.1点对点模式(PTP)   * 4.2发布-订阅模型(Pub/Sub)1.消息中间件概述  消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排

2017-10-23 16:21:07 678

原创 分布式之消息队列

分布式之消息队列 目录: * 1.消息队列概述 * 2.消息队列应用场景 * 2.1应用解耦 * 2.1.1传统模式 * 2.1.2使用消息队列 * 2.2异步处理消息 * 2.2.1传统模式 * 2.2.2使用消息队列 * 2.3流量削锋 * 2.4日志处理 *

2017-10-23 14:52:33 406

原创 浅谈Dubbo架构

1.Dubbo是什么 Dubbo是: 1)一款分布式服务框架 2)高性能和透明化的RPC远程服务调用方案 3)SOA服务治理方案 每天为2千多个服务提供大于30亿次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点以及别的公司的业务中。 2.Dubbo架构 Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 Registry: 服务注

2017-10-11 09:18:46 731

原创 SpringBoot 自定义+动态切换数据源

1、添加maven依赖<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency>

2017-10-10 09:34:42 5434 1

原创 Spring AbstractRoutingDataSource抽象类剖析

1、扩展Spring的AbstractRoutingDataSource抽象类(该类充当了DataSource的路由中介, 能有在运行时, 根据某种key值来动态切换到真正的DataSource上。) 从AbstractRoutingDataSource的源码中:public abstract class AbstractRoutingDataSource extends AbstractData

2017-10-10 09:04:27 374

原创 SpringBoot 设置多数据源访问

1、添加maven依赖注入 <!--properties所需依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId>

2017-10-10 08:58:11 664

原创 SpringBoot 使用druid监控数据库

1、添加maven依赖注解<!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <versio

2017-10-10 08:51:10 735

空空如也

空空如也

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

TA关注的人

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