# 开通 OSS
OSS 也就是 Object Storage Service,是阿里云提供的一套对象存储服务,国内的竞品还有七牛云的 Kodo 和腾讯云的 COS。
第一步,登录阿里云官网,搜索 “OSS” 关键字,进入 OSS 产品页。
第二步,如果是 OSS 新用户的话,可以享受 6 个月的新人专享优惠价,不过续费的时候还是会肉疼。
第三步,进入 OSS 管理控制台,点击「Bucket 列表」,点击「创建 Bucket」。
Bucket 的词面意思是桶,这里指存储空间,就是用于存储对象的容器。注意读写权限为 “公共读”,也就是允许互联网用户访问云空间上的图片。
第四步,点击「确定」就算是开通成功了。
# 整合 OSS
第一步,在 pom.xml 文件中添加 OSS 的依赖。
123456<!-- 阿里云 OSS --><dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> & ...
# 域名免费也能拥有,你的网络名片由你定义!
域名,如同互联网上的门牌号,是我们在数字世界中的身份象征。对于许多人来说,拥有一个属于自己的域名,是迈入网络世界的第一步。
然而,对于没有建站需求或只是临时使用域名的人来说,花钱购买域名似乎有些浪费。难道就没有免费的域名可供选择吗?
当然有!今天,就让我们一起探秘免费域名注册的奇妙世界,开启你的个性化网络之旅!
# 2024-5-17 最新可注册域名😊
此次免费注册的是二级域名,并且 可以托管到cloudflare
免费使用 1年 ,不够用可以续
查看详细教程
# 2024-5-16 最新可注册域名😊
此次免费注册的是 二级域名 ,并且不可以托管到 cloudflare
查看详细教程
# 2024-5-1 最新可注册😊
最新 伊朗顶级域名
本次域名是 顶级域名 ,强烈推荐 !!!
本次域名提供了后缀为 .ir 免费域名。
关键是可以托管到 cloudflare ,实在是太香啦!
查看详细教程
# 2024-4-25 最新可注册😊
香港域名 ,抓紧时间注册,先到先得,有三个后缀可选择。而且是 永久免费 ...
# 基本介绍
Apache ZooKeeper 是由 Apache Hadoop 的子项目发展而来,为分布式应用提供高效且可靠的分布式协调服务。
在解决分布式数据一致性方面,ZK 没有直接采用 Paxos 算法,而是采用了 ZAB(ZooKeeper Atomic Broadcast)协议。
ZK 可以提供诸如数据发布 / 订阅、负载均衡、命名服务、分布式协调 / 通知,集群管理,Master 选举,分布式锁,分布式队列等功能。
「它具有以下特性:」
「顺序一致性」:从一个客户端发起的事务请求,最终都会严格按照其发起顺序被应用到 Zookeeper 中;
「原子性」:要么所有应用,要么不应用;不存在部分机器应用了该事务,而「另一部分没有应用」的情况;
「单一视图」:所有客户端看到的服务端数据模型都是一致的,无论客户连接的是哪个 ZK 服务器;
「可靠性」:一旦服务端成功应用了一个事务,则其引起的改变会一直保留,直到被另外一个事务所更改;
「实时性」:一旦一个事务被成功应用后,Zookeeper 可以保证客户端立即可以读取到这个事务变更后的最新状态的数据(「一段时间」)。
# 数据模 ...
作为开发者,相信大家都知道 Nginx 的重要性。Nginx 是一个高性能的 HTTP 和反向代理 Web 服务器,由俄罗斯的伊戈尔・赛索耶夫开发,第一个版本发布于 2004 年 10 月 4 日。
Nginx 的特点是:
内存占用少
并发能力强(可支持大约 50000 个并发连接)
配置超简洁
bug 非常少
安装超简单
服务特别稳(几个月也不需要重启)
基于这些特点,越来越多的网站开始使用 Nginx。于是,掌握 Nginx 就变成了开发者的一项必不可少的技能。
# Nginx 的作用
反向代理是 Nginx 作为 Web 服务器最常用的功能之一。什么是反向代理呢?很多初学者在第一次遇到这个名词的时候总免不了出现很多问号。
那要想搞明白什么是反向代理,就必须得搞明白什么是正向代理。
举个例子,小二的浏览器是无法直接访问谷哥的,但香港的代理服务器是可以访问谷哥的,于是小二访问了香港的代理服务器,也就间接地访问了谷哥。那这台代理服务器也就是正向代理。
总结一句就是,正向代理是代理客户端的,让你能正常访问目的服务器。
与之相反,反向代理是代理服务器的,让大量的请求均衡地访问到某 ...
# 关于 Docker
Docker 是用 go 语言编写的,这也是 go 语言近些年越来越火的原因之一。关于 Docker,有 3 个重要的概念需要了解下:
image:镜像,一个文件,用来创建容器;如果你有 Windows 装机经历,那可以很好理解镜像这个词的含义,反正我年少的时候没少把 Windows 镜像刻盘重装系统。
container:容器,一个可运行的镜像实例,里面运行着一个完整的操作系统,可以做一切你当前操作系统可以做的事情。
Dockerfile:镜像构建的模板,描述镜像构建的步骤。
它们之间的关系是,通过 Dockerfile 构建出镜像,然后通过镜像构建容器,容器里可以跑程序。另外,一个镜像可以创建多个容器,每个容器之间是相互隔离的。
对于我们开发人员来说,Docker 可以做到:
编写本地代码
使用 Docker 将程序推送到测试环境
发现 bug 后在开发环境下修复,重新部署到测试环境测试
测试完成后,推送到生产环境
在这个过程中,Docker 提供的是开发环境、测试环境和生产环境的一致性,细细想一下,是不是挺恐怖的。。。。。
以后我们开发人员再说什么 ...
# Guava 工具库
# 前世今生
你好呀,我是 Guava。
我由 Google 公司开源,目前在 GitHub 上已经有 39.9k 的铁粉了,由此可以证明我的受欢迎程度。
我的身体里主要包含有这些常用的模块:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等。新版的 JDK 中已经直接把我引入了,可想而知我有多优秀,忍不住骄傲了。
这么说吧,学好如何使用我,能让你在编程中变得更快乐,写出更优雅的代码!
# 引入 Guava
如果你要在 Maven 项目使用我的话,需要先在 pom.xml 文件中引入我的依赖。
12345<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifac ...
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 中,过滤器都默认继承了 ...