Java核心
未读# Interface
为了解决接口的修改与现有的实现不兼容的问题。新 interface 的方法可以用 default 或 static 修饰,这样就可以有方法体,实现类也不必重写此方法。
default 修饰的方法,是普通实例方法,可以用 this 调用,可以被子类继承、重写。
static 修饰的方法,使用上和一般类静态方法一样。但它不能被子类继承,只能用 Interface 调用。
我们来看一个实际的例子。
1234567891011121314151617181920212223public interface InterfaceNew { static void sm() { System.out.println("interface提供的方式实现"); } static void sm2() { System.out.println("interface提供的方式实现"); } default void de ...
# Hutool 工具类库
读者群里有个小伙伴感慨说,“Hutool 这款开源类库太厉害了,基本上该有该的工具类,它里面都有。” 讲真的,我平常工作中也经常用 Hutool,它确实可以帮助我们简化每一行代码,使 Java 拥有函数式语言般的优雅,让 Java 语言变得 “甜甜的”。
Hutool 的作者在官网上说,Hutool 是 Hu+tool 的自造词(好像不用说,我们也能猜得到),“Hu” 用来致敬他的 “前任” 公司,“tool” 就是工具的意思,谐音就有意思了,“糊涂”,寓意追求 “万事都作糊涂观,无所谓失,无所谓得”(一个开源类库,上升到了哲学的高度,作者厉害了)。
看了一下开发团队的一个成员介绍,一个 Java 后端工具的作者竟然爱前端、爱数码,爱美女,嗯嗯嗯,确实 “难得糊涂”(手动狗头)。
废话就说到这,来吧,实操走起!
# 引入 Hutool
Maven 项目只需要在 pom.xml 文件中添加以下依赖即可。
12345<dependency> <groupId>cn.hutool</groupId> <art ...
SpringBoot
未读# 云服务器
我们需要一台云服务器,我之前免费过一台丐版的,1 核 1G 内存,并且已经安装了宝塔面板。
这是从宝塔面板首页看到的服务器配置详情。
# MySQL
登录宝塔面板,点击「数据库」→「添加数据库」,填写数据库名,宝塔面板会自动帮我们创建一个和数据库同名的账号,注意访问权限选择「本地服务器」。
在 codingmore 栏目中点击「导入」「从本地上传」编程喵的数据库文件。上传完成后点击导入。
DB 文件放在 coding-more/doc 目录下。
建议先做一次备份,点击「无备份」「备份」就可以将我们的数据库文件备份下来了,如果后面想恢复的话,直接点击「恢复」就可以了。
记住用户名,并复制密码,然后在数据库条目中点击「管理」
填写用户名和密码后,点击执行。
就可以看到编程喵的数据库文件了。
# Nginx
Nginx 是一个高性能的 HTTP 和反向代理 Web 服务器,基本上就变成了一个服务器必须安装的前置条件之一。
宝塔面板中安装 Nginx 比较简单,直接在软件商店中搜「Nginx」就可以点击安装了。
# Redis
宝塔面板中安装 Redis 也比较 ...
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 进行支持。后来的版 ...