自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 资源 (1)
  • 收藏
  • 关注

原创 SpringBoot整合SpringSecurity(十)窥探OAuth2

序言OAuth2是一个关于授权的开放网络标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容。 OAuth2.0是OAuth协议的延续版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0。代码请参考 https://github.com/AutismSuperman/springsecurity...

2019-12-01 17:20:39 839

原创 SpringBoot整合SpringSecurity(九)结合JWT(非OAuth2)

序言jwt有好处也有坏处,好处就是不用在去存这些session了,省空间,做分布式会话so easy。但是我个人是比较不推荐你使用这个的。我举例一下几种缺点无法满足注销场景无法满足修改密码场景无法满足token续签场景烦人的不能到期,控制到期设置黑名单,还是用到了存储比如redis,说实话这有点本末倒置,坏处不多说,如果不强求那么多安全,还是可以使用jwt减少成本,快速开发。代码...

2019-11-17 19:12:26 1320

原创 SpringBoot整合SpringSecurity(八)动态权限

序言SpringSecurity 进行的权限验证,有时候可能并不太满足我们的需求。有时候呢可能需要你自己去扩展达到一个对自己业务满意的验证,这时候怎么办呢?第一呢, 先不要百度,你要懂权限验证的一个流程,不懂的话可以去看我之前的博客,第二呢,就是放开手按照自己假象的思路去实践!思路我说一下我的需求,我想判断那个角色拥有某些url的权限,这时候该怎么进行扩展呢?我的思路是对 自定义 Acce...

2019-11-16 12:13:24 1657

原创 Mariadb 分享一下我的性能调优

序言由于工作需要,迫不得已去优化数据库的性能。服务器配置信息cpu内存数据库版本Intel® Xeon® CPU E5-2682 v4 @ 2.50GHz128GMairabd 10.4.7配置如下不做详细解释了。给大家做一个参考,根据业务进行修改[client]port= 3306 #端口 #**#字符设置default-char...

2019-11-15 23:13:26 2549

原创 SpringBoot整合SpringSecurity(七)权限原理

序言要想用活Spring Security的权限,必须要懂其大概的一个流程和原理,这样才能快速定位问题,和改造已有项目。过滤链首先呢要知道这个过滤链, 在配置了spring security了之后,会在运行项目的时候,DefaultSecurityFilterChain会输出相关log[main] o.s.s.web.DefaultSecurityFilterChain :Cre...

2019-11-15 21:06:54 1128

原创 一起来学SpringCloud 消息总线Bus

序言Spring Cloud Bus将轻量级消息代理程序链接到分布式系统的节点。然后可以将其用于广播状态更改(例如配置更改)或其他管理指令。当前唯一的实现是使用AMQP代理作为传输,但是其他传输的路线图上仍具有相同的基本功能集(还有一些取决于传输)。此文章仅限入门 SpringCloud版本为 Greenwich就是说在使用了一些分布式配置中心后(这里以Spring Cloud Con...

2019-11-09 21:45:55 316

原创 Centos7 升级OpenSSH

序言Centos7 检测出漏洞,要升级OpenSSH。过程避免升级不成功出现ssh无法连接情况请yum安装telnet-server开启23端口,以便安装不成功23端口依然能连接。 yum install -y telnet telnet-server lrzsz wget xinetd vim然后设置下开机自启systemctl enable telnet.socketsyst...

2019-11-09 14:35:18 823 1

原创 一起来学SpringCloud 配置中心Config

序言​ Spring Cloud Config为分布式系统中的外部配置,提供了服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器映射的概念与Spring Environment和PropertySource抽象相同,因此它们与Spring应用程序非常契合,但可以与任何以任何语言运行的应用程序一起使用。随着应用程序通过从开发人员到测试和...

2019-11-08 20:54:59 218

原创 一起来学SpringCloud SpringBootAdmin监控

序言​ 随着开发周期的推移,项目会不断变大,切分出的服务也会越来越多,这时一个个的微服务构成了错综复杂的系统。对于各个微服务系统的健康状态、会话数量、并发数、服务资源、延迟等度量信息的收集就成为了一个挑战。Spring Boot Admin 应运而生,它正式基于这些需求开发出的一套功能强大的监控管理系统。此文章仅限入门 SpringCloud版本为 Greenwich​​ Spr...

2019-11-08 20:53:35 177 1

原创 一起来学SpringCloud 服务网关Gateway

序言​ zuul的跳票,导致spring这边自己干了一套网关, Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。Spring Cloud Gateway作为Spring Clou...

2019-11-08 20:52:06 188

原创 一起来学SpringCloud 服务网关Zuul

序言​ 路由是微服务体系结构的一个组成部分。例如 / 可以映射到您的Web应用程序,/api/order映射到用户服务,/api/product映射到商店服务。 Zuul 默认和 Ribbon 结合实现了负载均衡的功能。此文章仅限入门 SpringCloud版本为 Greenwich2016 年前后基于 NIO 的 Zuul2 开始开发,一直到 2018 年才发布,彼时,市场上类似产...

2019-11-08 20:48:41 182

原创 一起来学SpringCloud 断路器Hystrix

序言 在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以通过 `RPC` 相互调用,在 Spring Cloud 中可以用 `RestTemplate + Ribbon` 和 `Feign` 来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证 100% 可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,`Se...

2019-11-08 20:47:41 126

原创 一起来学SpringCloud 声明式Http调用Feign

序言​ 作为Spring Cloud的子项目之一,Spring Cloud OpenFeign以将OpenFeign集成到Spring Boot应用中的方式,为微服务架构下服务之间的调用提供了解决方案。首先,利用了OpenFeign的声明式方式定义Web服务客户端;其次还更进一步,通过集成Ribbon或Eureka实现负载均衡的HTTP客户端。此文章仅限入门 SpringCloud版本为 ...

2019-11-08 20:46:46 254

原创 一起来学SpringCloud 软负载Ribbon

序言​ Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,但是它几乎存在于每一个Sp...

2019-11-08 20:45:45 166

原创 一起来学SpringCloud 服务发现Eureka

序言​ Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Bo...

2019-11-08 20:45:03 135

原创 一起来学SpringCloud Maven版本控制

序言​ 在学习Sping Cloud之前应该先知道其与Spring Boot的对应版本,不然会出现各种不兼容的情况,和一些未知的问题。怎么查看版本呢?访问网站https://start.spring.io/actuator/info然后呢找到 spring-cloud 这个节点{ "Finchley.M2": "Spring Boot >=2.0.0.M3 and &...

2019-11-08 20:43:21 2096

原创 nginx proxy_pass url匹配规则

废话不多说 在nginx中配置proxy_pass时,当在后面的url加上了/,相当于是绝对根路径,则nginx不会把location中匹配的路径部分代理走;如果没有/,则会把匹配的路径部分也给代理走。 模糊匹配没有 / 时,location /fulin/wik可以匹配 /fulin/wiki请求,也可以匹配 /fulin/wiki/xxx等而有 / 时,location...

2019-11-07 22:11:34 3759 3

原创 一起来学SpingBoot(二十一)消息队列RabbitMq

序言RabbitMQ是一个遵循AMQP协议,由面向高并发的erlanng语言开发而成,用在实时的对可靠性要求比较高的消息传递上,支持多种语言客户端。支持 延迟队列(这是一个非常有用的功能)。基础概念**Broker:**简单来说就是消息队列服务器实体**Exchange:**消息交换机,它指定消息按什么规则,路由到哪个队列**Queue:**消息队列载体,每个消息都会被投入到一个或多个队...

2019-11-07 21:53:56 212

原创 一起来学SpingBoot(二十)消息队列ActiveMq

序言​ ActiveMQ是Apache所提供的一个开源的消息系统,完全采用Java来实现,因此,它能很好地支持J2EE提出的JMS(Java Message Service,即Java消息服务)规范。JMS是一组Java应用程序接口,它提供消息的创建、发送、读取等一系列服务,虽然比较老,但是依然可以运用于中小项目的生产环境。JMSJMS支持两种消息发送和接收模型。P2P(Ponit to...

2019-11-07 21:53:25 214

原创 Java基础 泛型

什么是泛型那么什么是泛型呢?我们经常在java里见到泛型的地方,应该就是那些集合类了吧。 List<String> list = new ArrayList<String>();差不多是这样。在java7及其之后 由于编译器会做类型推荐那么也可以简写成这样 List<String> list = new ArrayList<>();大...

2019-11-07 21:52:07 191

原创 SpringBoot整合SpringSecurity(六)权限注解

这一篇说一下比较好用的Spring Security注解。使用Spring Security默认是禁用注解的,要想开启注解,要在继承WebSecurityConfigurerAdapter的类加@EnableMethodSecurity注解,并在该类中将AuthenticationManager定义为Bean。@Configuration@EnableWebSecurity@Enable...

2019-07-08 17:49:50 12295 5

原创 SpringBoot整合SpringSecurity(五)权限控制

Spring Security具有强大的权限验证。权限有些人认为是页面的隐藏,其实不然。权限可以理解为是否可以访问资源,页面隐藏什么的是客户友好度的事情,所以对于web而言,系统的安全不安全,最终取决于对url的控制。本文章代码可以参考 https://gitee.com/Maoxs/security-test中的 security-permission准备页面首先呢是登陆<...

2019-07-02 16:48:13 8170 2

原创 SpringBoot整合SpringSecurity(四)记住我

实现“记住我” 功能 ,在用户登陆一次以后,系统会记住用户一段时间,在这段时间,用户不用反复登陆就可以使用我们的系统。先说一下使用改动拿之前第的入门程序举例子改一些login.html<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>登录&lt...

2019-06-28 16:26:40 2166 4

原创 SpringBoot整合SpringSecurity(三)验证码登陆

上一篇文章我们跟踪源码了解到了security整个的登陆流程,这一篇我们就基于这个流程来做一个自己定义的流程,并与security对接。本篇中介绍的是短信登陆,当然验证码登陆跟这个原理是一样的就不多说了。本文章代码可以参考 https://gitee.com/Maoxs/security-test中的 security-code准备页面<!DOCTYPE html><...

2019-06-21 14:26:19 2098 6

原创 SpringBoot整合SpringSecurity(二)认证流程

上一篇文章我们做了一个简单的入门程序,我们这一篇就来简单的跟踪源码,来分析一下其中的原理,顺便了解了整个流程后更方便我们扩展去做不同的登陆。认证流程我们就拿上一篇的登陆来做一个分析。用户在页面上输入 用户名密码后访问响应的登陆方法 会进入到 UsernamePasswordAuthenticationFilter然后会进入到attemptAuthentication 方法中。在这个方法里呢...

2019-06-20 15:53:10 1865 2

原创 SpringBoot整合SpringSecurity(一)入门程序

Spring Security是一个功能强大且可高度自定义的身份验证和访问控制框架。它是保护基于Spring的应用程序的事实标准。Spring Security是一个专注于为Java应用程序提供身份验证和授权的框架。与所有Spring项目一样,Spring Security的真正强大之处在于它可以轻松扩展以满足自定义要求。这是Spring Security 官方的说明,早就听闻 Spring ...

2019-06-20 15:04:36 2508 3

原创 idea 查看接口或者类的关系

在 IntelliJ IDEA 中可以很方便查看一个类也就是当前类的所有继承关系,包括实现的所有的接口和继承的类,方便研究源码查看实现原理查看该类的继承关系右键➡点击Diagram Show Diagram \ Show Diagram Popup或者使用快捷键Ctrl+Alt+U \ Ctrl+Shirt+Alt+U如果点击了 Show Diagram 则会进入到一个新的tab 页...

2019-06-19 17:18:12 3330

原创 一起来学SpringBoot(十九)整合MongoDB

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。依赖依赖依赖 <dependency> <groupId>org.springframework.boot&lt...

2019-06-17 23:13:32 202

原创 SpringBoot 远程DeBug

远程debug调试java代码日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试。生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试。也就是说,你本地运行没问题啊,为啥放服务器上就有问题看了,这时候应该怎么办呢?整体过程是通过修改远程服务JAVA_OPTS参数,然后本地通过Eclipse或IDEA等工具调试。基本理论Java远程调试的原理是两个VM之间通过de...

2019-06-16 22:54:58 1621

原创 Centos7 systemctl的使用

CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下.说明CentOS7的每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install][Unit] 服务的说明D...

2019-06-10 16:11:47 410

原创 Centos7 安装mongodb

MongoDB 是一个基于分布式 文件存储的NoSQL数据库yum安装在/etc/yum.repos.d 目录下创建mongodb-org.repo的一个文件并在文件中加入如下[mongodb-org]name=MongoDB Repositorybaseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-o...

2019-06-10 15:46:38 107

原创 Centos7 安装nginx

Nginx 是 C语言 开发,建议在 Linux 上运行。yum安装安装响应的nginx依赖yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-develnginx源头rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-releas...

2019-06-10 15:26:40 152

转载 浅谈极限编程

为什么出现极限编程 ?敏捷方法论有一个共同的特点,那就是都将矛头指向了“文档”,它们认为传统的软件工程方法文档量太“重”了,称为“重量级”方法,而相应的敏捷方法则是“轻量级”方法。正是因为“轻量级”感觉没有什么力量,不但不能够有效体现灵活性,反而显得是不解决问题的方法论似的。因此,就有了一次划时代的会议,创建了敏捷联盟。在敏捷方法论领域中,比较知名的、有影响力的,是拥有与 Microsoft ...

2019-06-08 23:08:15 13977 4

原创 一起来学SpringBoot(十八)轻松集成WebSocket

WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。springboot提供了相关整合starter<!--websock...

2019-05-24 16:47:44 349

原创 SpringBoot logback日志存入mongodb

首先继承 logback 中的 ch.qos.logback.core.UnsynchronizedAppenderBase 类public class MongoDBAppender extends UnsynchronizedAppenderBase<ILoggingEvent> { @Override protected void append(ILoggin...

2019-05-21 15:26:49 1774 2

原创 一起来学SpringBoot(十七)优雅的参数校验

参数校验在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等,写这些与业务逻辑关系不大的代码个人感觉有两个麻烦:验证代码繁琐,重复劳动方法内代码显得冗长每次要看哪些参数验证是否完整,需要去翻阅验证逻辑代码使用hibernate-validatorspring-boot-starter-web包里面有hibernate-validator包,不需要引用h...

2019-05-17 14:35:55 5435 8

转载 浅谈死海效应

什么是死海效应?Bruce F. Webster 在 2008 年写了一篇文章「The Wetware Crisis: the Dead Sea effect」, 翻译过来是死海效应。Bruce 在文章中阐述了一个概念:一个团队可能陷入一种反模式,称之为死海效应。 死海是位于约旦的一个高盐分水域,由于水分被蒸发,这里的盐度是正常海水的 8 倍。 将水分比喻为高质量人才,盐分比喻为低质量人才。 ...

2019-04-25 22:21:35 5065

转载 浅谈技术债

技术债是什么?出自于沃德·坎宁安之口,他首次将技术的复杂比作为负债,简称技术负债(技术债)。软件开发本来就是一项很复杂的工程,所以很多人都软件开发当作软件工程看待。开发出来的软件是用来服务于各个领域(金融,医疗,购物等),我们程序员不一定能完全了解某个领域(术业有专攻),所以就没法很好的把控这个领域的软件架构,必然就会产生技术负债。技术债是无法避免的,只是产生技术债或多或少的问题。为什么会有技...

2019-04-25 22:09:12 940

原创 nginx 常用用法

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。我就介绍几个我在工作中用到的nginx的反向代理功能。代理本地目录这个需求是比如vue项目或者h5 要发布到服务器上,这时候就用到了nginx ,因为nginx处理静...

2019-04-02 10:52:37 784

原创 Centos7 安装超牛逼的api管理平台yapi

yapi 是什么YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。提供了 api 文档管理,api 数据 模拟(Mock),调试和自动化测试 api 等功能可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。简单点就是说,前后程...

2019-03-18 13:39:45 2689

quartz官方数据库大全

Quartz是一个功能丰富的开源作业调度库,几乎可以集成在任何Java应用程序中 - 从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建简单或复杂的计划,以执行数十,数百甚至数万个作业; 将任务定义为标准Java组件的作业,这些组件可以执行几乎任何可以编程的程序。Quartz Scheduler包含许多企业级功能,例如支持JTA事务和集群。非要写描述,真是的~~~~~~~~~

2018-08-19

空空如也

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

TA关注的人

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