SpringBoot
未读# 前言
先说作用。
过滤器(Filter):当有一堆请求,只希望符合预期的请求进来。
拦截器(Interceptor):想要干涉预期的请求。
监听器(Listener):想要监听这些请求具体做了什么。
再说区别。
过滤器是在请求进入容器后,但还没有进入 Servlet 之前进行预处理的。如下图所示。
拦截器是在请求进入控制器(Controller) 之前进行预处理的。
虚线内就是过滤器和拦截器的作用范围:
过滤器依赖于 Servlet 容器,而拦截器依赖于 Spring 的 IoC 容器,因此可以通过注入的方式获取容器当中的对象。
监听器用于监听 Web 应用中某些对象的创建、销毁、增加、修改、删除等动作,然后做出相应的处理。
# 过滤器
过滤敏感词汇(防止 sql 注入)
设置字符编码
URL 级别的权限访问控制
压缩响应信息
过滤器的创建和销毁都由 Web 服务器负责,Web 应用程序启动的时候,创建过滤器对象,为后续的请求过滤做好准备。
过滤器可以有很多个,一个个过滤器组合起来就成了 FilterChain,也就是过滤器链。
在 Spring 中,过滤器都默认继承了 ...
# 常用工具类
除了我们前面提到的 Java 原生工具类,比如说 Arrays、Objects、Collections、Scanner 等,还有一些第三方的工具类,比如说 Hutool、Guava 等,以及我们今天介绍的 IpUtil、CollectionUtils、StringUtils、MDC、ClassUtils、BeanUtils、ReflectionUtils 等等,在很大程度上能够提高我们的生产效率。
当然了,如果能好好看一下它们的源码,对技术功底的提升,也是有很大帮助的。
# IpUtil:获取本机 Ip
获取本机 IP 算是比较常见的一个需求场景了,比如业务报警,可能就会带上出问题的机器 IP,方便直接上去看日志定位问题,那么问题来了,如何获取机器 IP 呢?
# 基本方法
如何获取机器 IP?如果了解 InetAddress 这个工具类,就很容易写出一个简单的工具类,如下
1234567public static String getLocalIP() { try { return InetAddress.getLocalHos ...
# Elasticsearch 是什么
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
以上引用来自于官方,不得不说,解释得蛮文艺的。意料之中和意料之外,这两个词让我想起来了某一年的高考作文题(情理之中和意料之外)。
Elastic Stack 又是什么呢?整个架构图如下图(来源于网络,侵删)所示。
信息量比较多,对吧?那就记住一句话吧,Elasticsearch 是 Elastic Stack 的核心。
国内外的很多知名公司都在用 Elasticsearch,比如说滴滴、今日头条、谷歌、微软等等。Elasticsearch 有很多强大的功能,比如说全文搜索、购物推荐、附近定位推荐等等。
理论方面的内容就不说太多了,我怕小伙伴们会感到枯燥。毕竟入门嘛,实战才重要。
# 安装 Elasticsearch
Elasticsearch 是由 Java 开发的,所以早期的版本需要先在电脑上安装 JDK 进行支持。后来的版 ...