自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

转载 webflux session属性修改

修改webflux session属性springcloud gateway 使用webflux做web框架之后,使用org.springframework.web.server.session.WebSessionIdResolver接口作为session的产生接口,默认为 cookie方式实现:org.springframework.web.server.session.CookieWebSessionIdResolver重新申明 此接口即可进行一些参数配置 @B..

2020-05-29 14:13:06 1947

转载 SpringWebFlux执行过程

Spring WebFlux的出现带来了异步响应式编程的福音,随着它不断的完善,使用者会逐渐的变多,作为经常拿来与Spring MVC对比的框架。它的执行过程,设计上与Spring MVC有什么区别呢?大致看了下其源码,做了简要梳理。启动1 仍然保持原有的方式启动应用,那么Spring如何知道要启动WebFlux应用呢?WebApplicationType枚举类中,deduceFromClasspath判断如果存在DispatcherHandler,然后一些其它条件,那么系统认为要启动的

2020-05-27 14:25:28 755

转载 Springboot 2.0---WebFlux请求处理流程

笔记是学习了小马哥在慕课网的课程的《Spring Boot 2.0深度实践之核心技术篇》的内容结合自己的需要和理解做的笔记。前言在了解了WebFlux核心组件之后,我们就该了解相应的请求流程了,在之前就写过几篇关于 SpringMvc 请求的流程笔记,如果之前有过了解的并且自己debugger 过的小伙伴,相信了解 WebFlux 的执行流程会很快。我们知道WebFlux支持两种请求模式注解驱动 函数式端点接下来我们会重点讲一下函数式端点请求的具体流程,注解驱动由于跟SpringMVC很

2020-05-26 20:14:39 1326

转载 Spring Security登录 成功后用于信息保存

在上片博客中 记录了登录流程:那登录后信息如果用户信息保存到哪里了呢?看最后源码:在抽象类 AbstractAuthenticationProcessingFilter 拦截并做登录处理后 最后会调用successfulAuthentication(request, response, chain, authResult);1方法 successfulAuthentication 中可以明确看到 信息保存到了SecurityContextHolder.getContext().setAuthen

2020-05-26 19:55:26 2449

转载 Spring-Cloud-Gateway之请求处理流程

Spring-Cloud-Gateway 初始化,路由模型,以及路由加载等源码在上几篇学习文档中已经描述,接下来来看Spring-Cloud-Gateway是怎么通过这些来对我们的请求进行路由处理的Spring-Cloud-Gateway整体流程图imageDispatcherHandler:所有请求的调度器,负载请求分发 RoutePredicateHandlerMapping:路由谓语匹配器,用于路由的查找,以及找到路由后返回对应的WebHandler,DispatcherHan

2020-05-21 17:58:03 876

转载 Reactor之发射器(Flux、Mono)转换操作函数

Reactor 发射器转换操作函数concatWithValues@SafeVarargspublic final Flux<T> concatWithValues(T... values)将值连接到Flux的末尾。imageconcatpublic static <T> Flux<T> concat(Iterable<? extends Publisher<? extends T>> sources..

2020-05-21 17:06:41 1687

转载 (4)Reactor 3快速上手——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。前情提要:响应式流 | lambda与函数式1.3.2 ReactorReactor与Spring是兄弟项目,侧重于Server端的响应式编程,主要 artifact 是 reactor-core,这是一个基于 Java 8 的实现了响应式流规范 (Reactive Streams specification)的响应式库。本文对Reactor的介绍以基本的概念和简单的使用为主,深度以能够满足基本的Spring WebFlux使用为准。在下一章,

2020-05-21 16:43:10 474 1

转载 面试问我,创建多少个线程合适?我该怎么说

来源公众号:于日拱一兵作者:tan日拱一兵你有一个思想,我有一个思想,我们交换后,一个人就有两个思想If you can NOT explain it simply, you do NOT understand it well enoughimage为什么要使用多线程?防止并发编程出错最好的办法就是不写并发程序image既然多线程编程容易出错,为什么它还经久不衰呢?A:那还用说,肯定在某些方面有特长呗,比如你知道的【它很快,非常快】我也很赞同这个答案,.

2020-05-19 17:34:24 310

转载 手把手教你做系统权限设计,看完不要说还不会

权限系统设计前言权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。1.权限模型迄今为止最为普及的权限设计模型是RBAC模型,基于角色的访问控制(Role-Based Access Control)1.1 RBAC-0模型RBAC-0模型RBAC-0模型是权限最基础也是最核心的模型,它包括用户/角色/权限,其中用户和角色是多对多的关系,角色和权限也是多对多的

2020-05-19 17:13:59 1313

转载 如何优雅设计 API 接口,实现统一格式返回?

来源:老顾聊技术前言在移动互联网,分布式、微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前后端分离方式,(题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟;以前后端人员瞧不起前端人员,那现在后端人员要重新认识一下前端,前端已经很成体系了)一般系统的大致整体架构图如下:image需要说明的是,有些小伙伴会回复说,这个架构太简单了吧,太low了,什么网关啊,缓存啊,消息中间件啊,都没有。因为老顾这篇主要介绍的是API接口,所以

2020-05-19 17:02:06 210

转载 【项目实践】后端接口统一规范的同时,如何优雅得扩展规范

以项目驱动学习,以实践检验真知前言我在上一篇博客中写了如何通过参数校验 + 统一响应码 + 统一异常处理来构建一个优雅后端接口体系:【项目实践】SpringBoot三招组合拳,手把手教你打出优雅的后端接口。我们做到了:通过Validator + 自动抛出异常来完成了方便的参数校验 通过全局异常处理 + 自定义异常完成了异常操作的规范 通过数据统一响应完成了响应数据的规范 多个方面组装非常优雅的完成了后端接口的协调,让开发人员有更多的经历注重业务逻辑代码,轻松构建后端接口这样看上.

2020-05-19 16:56:27 260

转载 【项目实践】SpringBoot三招组合拳,手把手教你打出优雅的后端接口

以项目驱动学习,以实践检验真知前言一个后端接口大致分为四个部分组成:接口地址(url)、接口请求方式(get、post等)、请求数据(request)、响应数据(response)。如何构建这几个部分每个公司要求都不同,没有什么“一定是最好的”标准,但一个优秀的后端接口和一个糟糕的后端接口对比起来差异还是蛮大的,其中最重要的关键点就是看是否规范!本文就一步一步演示如何构建起一个优秀的后端接口体系,体系构建好了自然就有了规范,同时再构建新的后端接口也会十分轻松。在文章末尾贴上了项目演示的gith.

2020-05-19 16:52:46 186 1

转载 git撤销commit到未提交状态

如何把最后一次commit撤销回Changes not staged和Untracked files区呢?有3种情况:(1)把最后的commit切回Changes to be committed状态,使用命令:git reset --soft HEAD^注意:Windows系统需要在^符号后面两边加上引号,如:git reset --soft HEAD"^"(2)把最后的commit切回Changes not staged for commit状态,使用命令:git res

2020-05-18 13:34:25 16597

转载 附2:Reactor 3 之选择合适的操作符——响应式Spring的道法术器

本系列文章索引《响应式Spring的道法术器》前情提要Reactor Operators本节的内容来自我翻译的Reactor 3 参考文档——如何选择操作符。由于部分朋友打开github.io网速比较慢或上不去,贴出来方便大家查阅。如果一个操作符是专属于Flux或Mono的,那么会给它注明前缀。公共的操作符没有前缀。如果一个具体的用例涉及多个操作符的组合,这里以方法调用的方式展现,会以一个点(.)开头,并将参数置于圆括号内,比如:.methodCall(parameter)。...

2020-05-15 18:04:22 1274

转载 【全栈修炼】CORS和CSRF修炼宝典

《全栈修炼》系列《【全栈修炼】OAuth2修炼宝典》CORS 和 CSRF 太容易混淆了,看完本文,你就清楚了。一、CORS 和 CSRF 区别先看下图:CORS 和 CSRF 区别两者概念完全不同,另外常常我们也会看到 XSS ,这里一起介绍: CORS : Cross Origin Resourse-Sharing 跨站资源共享 CSRF : Cross-Site Request Forgery 跨站请求伪造 XSS : Cross Site Scri

2020-05-15 17:23:29 203

转载 跨站脚本攻击—XSS

XSS 介绍XSS 是跨站脚本攻击(Cross Site Scripting)的简写,但是从首写字母命名的方式来看,应该取名 CSS,但这样就和层叠样式表(Cascading Style Sheets,CSS)重名了,所以取名为 XSS。XSS 攻击,一般是指攻击者通过在网页中注入恶意脚本,当用户浏览网页时,恶意脚本执行,控制用户浏览器行为的一种攻击方式。XSS 危害窃取用户Cookie,获取用户隐私,盗取用户账号。 劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志

2020-05-15 17:18:02 226

转载 详解 Webflux 中的 onErrorResume 和 onErrorReturn

webflux 并不算一门新技术,它出自 Spring,所以 Spring 中的一些特性它都有,包括 SpringMVC 中的一些注解它也可以沿用。没看过 webflux 教程的,可以参考我前面关于 webflux 教程的一些文章。本文我们来学习 webflux 中两个比较特独的方法 onErrorResume 和 onErrorReturn。先回忆一下,我们在 SpringMVC 或者 SpringBoot 中常用的处理异常的方式有:@RestControllerAdvice、@ExceptionHa

2020-05-15 15:55:24 8507

转载 Mono和Flux的用法详解

WebFlux的Flux和Mono用法Fluxjust可以指定序列中包含的全部元素。创建出来的 Flux 序列在发布这些元素之后会自动结束。fromArray(),fromIterable()和 fromStream()可以从一个数组、Iterable 对象或 Stream 对象中创建 Flux 对象。empty()创建一个不包含任何元素,只发布结束消息的序列,在响应式编程中,流的传递是基于元素的,empty表示没有任何元素,所以不会进行后续传递,需要用switchIfEmpty等处理er

2020-05-15 15:45:16 2626

转载 反应式编程之Mono.defer

本文基于project reactor,,reactor-bom版本为Dysprosium-SR4,project reactor数据源大致可以分为两类:恶汉型跟懒汉型,mono defer方法创建数据源属于懒汉型,与Mono.just等创建数据源则是恶汉型,下面看一个例子: @Test public void defer(){ //声明阶段创建DeferClass对象 Mono<Date> m1 = Mono.just...

2020-05-15 13:35:08 1169

转载 跨域资源共享 CORS 详解

CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。本文详细介绍CORS的内部机制。(图片说明:摄于阿联酋艾因(Al Ain)的绿洲公园)一、简介CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS

2020-05-14 18:15:22 130

转载 Spring Security核心概念介绍

Spring Security是一个强大的java应用安全管理库,特别适合用作后台管理系统。这个库涉及的模块和概念有一定的复杂度,而大家平时学习Spring的时候也不会涉及;这里基于官方的参考文档,把Spring Security的基本套路介绍一下。参考的Spring Security文档地址:https://docs.spring.io/spring-security/site/docs/5.0.7.RELEASE/reference/html/preface.htmlSpring Securit

2020-05-11 15:10:47 433

转载 springSecurity深度解析第二版

前言由于第一版排版实在太过糟糕,而且很多细节没交代清楚,所以决定写第二版;这一版争取将排版设计得清晰明了一点,以方便读者阅读。security原理分析springSecurity过滤器链springSecurity 采用的是责任链的设计模式,它有一条很长的过滤器链。现在对这条过滤器链的各个进行说明 WebAsyncManagerIntegrationFilter:将Security上下文与Spring Web中用于处理异步请求映射的 WebAsyncManager 进行集成。

2020-05-11 15:09:38 407

转载 从Mysq了中导入数据到Elasticsearch中

公司业务在中途由于数据库的压力,要将之前的搜索从DB中查询修改为Elasticsearch中想法是提供jar 在数据新增和修改的地方调用jar中方法,写入kafka中,再使用consumer 写入ES,为了不造成数据重复,使用主键ID做upert操作目前流程已经开发完成,查询接口和分词都完成,最后工作是将历史数据从DB中(MYSQL)中最终写入到ES中有三种方案 :第一种:写程序,链接MYSQL,批量的写入kakfa中,后续在现有逻辑已经完成,可以好low啊 而且麻烦第二种:使用kafk

2020-05-11 14:20:30 215

空空如也

空空如也

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

TA关注的人

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