SpringBoot异常处理之ErrorPageFilter

ErrorPageFilter 简介

ErrorPageFilter是SpringBoot在1.4.0版本提供的一个类,本质上是一个Filter。 它的作用主要有两方面:

  1. 提供应用程序注册ErrorPage的接口,此时它的角色是:ErrorPageRegistry
  2. 处理应用程序异常,根据异常的类型转发到对应的ErrorPage页, 从而不依赖部署的容器错误处理机制

spring扩展点整理

背景

Spring的强大和灵活性不用再强调了。而灵活性就是通过一系列的扩展点来实现的,这些扩展点给应用程序提供了参与Spring容器创建的过程,好多定制化的东西都需要扩展点的支持。尤其在使用SpringBoot的过程中。

maven jar包依赖范围总结

背景

在Java项目开发中,我们通常都是使用maven来管理整个项目的。而其中依赖jar的管理是非常重要的,如果管理不善,很容易jar包冲突导致应用突然启动不起来。这个一方面是由于jar包引入不规范导致,另一方面也是由于依赖jar本身也会依赖其它的jar,但是这些第三方依赖jar依赖的jar的maven scope可能使用不当导致同一个功能不同版本jar的引入。

springboot发布到tomcat

前言

最近在学习springboot相关的东西,其中有一个点就是项目开发完成后的部署。我们都知道springboot项目可以打包为只执行jar的方式和war包的方式。可执行jar使用的是内嵌的servlet容器,war包的方式可以部署到外部的容器中。通常我们都使用外部容器的方式来部署应用。这篇文章就将我学习到的如何将springboot应用部署到tomcat中的方法记录下来。

raft协议简介

raft是什么?

raft是一个分布式一致性算法。

raft 系统结点分类

  • Follower
  • Leader
  • Candidate

Leader选举

raft系统结点启动时的身份是:Follower。 如果Follower结点不能和Leader结点进行通信则会变为Candidate结点,然后Candidate结点请求其它结点进行投票。其它结点会以它们的投票结果进行响应。如果Candidate获取了大多数的投票则会变为Leader结点。该过程称为Leader选举。

js跨域解决方案详解

本文转载自:详解js跨域问题

什么是跨域?

概念:只要协议、域名、端口有任何一个不同,都被当作是不同的域。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
URL                      说明       是否允许通信
http://www.a.com/a.js
http://www.a.com/b.js 同一域名下 允许
http://www.a.com/lab/a.js
http://www.a.com/script/b.js 同一域名下不同文件夹 允许
http://www.a.com:8000/a.js
http://www.a.com/b.js 同一域名,不同端口 不允许
http://www.a.com/a.js
https://www.a.com/b.js 同一域名,不同协议 不允许
http://www.a.com/a.js
http://70.32.92.74/b.js 域名和域名对应ip 不允许
http://www.a.com/a.js
http://script.a.com/b.js 主域相同,子域不同 不允许
http://www.a.com/a.js
http://a.com/b.js 同一域名,不同二级域名(同上) 不允许(cookie这种情况下也不允许访问)
http://www.cnblogs.com/a.js
http://www.a.com/b.js 不同域名 不允许

对于端口和协议的不同,只能通过后台来解决

netty如何实现心跳检查

前言

Java网络编程中,处理Idle事件是很必须的,一般情况下,客户端与服务端在指定时间内没有任何读写请求,就会认为连接是idle的。此时需要有某种机制来实现idle连接的检查,并通过心跳包来保持连接的存活。Netty作为时下非常流行的Java网络编程库,当然提供了空闲连接检查的能力。

|