SpringBoot
未读# 背景
Spring 的核心理念蕴含着容器的奥妙。在容器焕然一新的瞬间,外部世界看似平静,却不知内部却是波涛汹涌,掀起惊涛骇浪,浩浩荡荡。Spring
Boot 更进一步地封装了 Spring 框架,秉承着约定优于配置的原则,借助自动装配的机制。有时候,只需引入一个依赖,便能轻松实现功能的装配,几乎无需额外的配置。
# 调用顺序图
来自大佬的图
# 扩展类
# ApplicationContextInitializer
org.springframework.context.ApplicationContextInitializer
实现 ApplicationContextInitializer 接口的类,可以在 Spring 容器初始化的早期阶段介入,并在容器刷新之前对应用程序上下文进行必要的定制。
比如设置 环境属性 、 激活配置文件 、 注册监听器 等操作,以便在容器刷新后应用这些配置。
这为开发人员提供了更大的灵活性和控制力,使他们能够更好地适应应用程序的特定需求。
123456public class TestApplicationContextInitiali ...
# elasticsearch 的核心概念
Near Realtime(NRT)近实时
两个意思:
从写入数据到数据可以被搜索到有一个小延迟(大概 1 秒);
基于 es 执行搜索和分析可以达到秒级;
Cluster 集群
包含多个节点,每个节点属于哪个集群是通过一个配置(集群名称,默认是 elasticsearch )来决定的,对于中小型应用来说,刚开始一个集群就一个节点很正常
Node 节点
集群中的一个节点,节点也有一个名称(默认是随机分配的),节点名称很重要(在执行运维管理操作的时候),默认节点会去加入一个名称为 “elasticsearch” 的集群,如果直接启动一堆节点,那么它们会自动组成一个 elasticsearch 集群,当然一个节点也可以组成一个 elasticsearch 集群
Document&field 文档
es 中的最小数据单元,一个 document 可以是一条客户数据,一条商品分类数据,一条订单数据,通常用 JSON 数据结构表示
一个 index 下的 type 中,都可以去存储多个 document。
一个 docume ...
# 8 个能使用 GPT-4 的网站,带你领略人工智能的强大!
GPT-4,由 OpenAI 开发的大型语言模型,拥有强大的文本生成、翻译、问答等能力,是人工智能领域的最新突破。
想要体验 GPT-4 的魅力,但苦于没有开发环境?别担心!这里为你推荐 8 个能使用 GPT-4 的网站,让你轻松感受人工智能的强大。
# merlin
链接地址:https://www.getmerlin.in/fr
Merlin AI 的主要功能包括:
文本生成:可以生成各种文本格式,例如诗歌、代码、剧本、音乐作品、电子邮件、信件等。
翻译:可以翻译多种语言,并且支持多种语言之间的互译。
问答:可以回答您的问题,即使是开放式、具有挑战性或奇怪的问题。
Merlin AI 的优势包括:
强大:拥有强大的语言理解和处理能力,可以完成各种复杂的任务。
灵活:可以根据您的需求进行调整,以满足您的特定需求。
易用:提供便捷的操作界面,即使没有编程经验,也能轻松使用。
Merlin AI 的应用场景包括:
写作:可以帮助您完成写作任务,例如写文章、写代码、写剧本等。
翻译:可以帮助您克服语言障碍,与来自 ...
Java核心
未读# 理论
Java 序列化是 JDK 1.1 时引入的一组开创性的特性,用于将 Java 对象转换为字节数组,便于存储或传输。此后,仍然可以将字节数组转换回
Java 对象原有的状态。
序列化的思想是 “冻结” 对象状态,然后写到磁盘或者在网络中传输;
序列化有一条规则,就是要序列化的对象必须实现 Serializbale 接口,否则就会报 NotSerializableException 异常。
好,来看看 Serializbale 接口的定义吧:
12public interface Serializable {}
就一个空的接口嘛,竟然能够保证实现了它的 “类对象” 被序列化和反序列化?
# 实战
在回答上述问题之前,我们先来创建一个类(只有两个字段,和对应的 getter/setter ),用于序列化和反序列化。
1234567891011121314151617181920class Obj { private String name; private int age; public String getName() ...
234db99cd52a97edc76dee15a0b78a9cfbb2fe72764757b7bf506403d2181f91e83e4da17640f2ceae9783073b7bc0b1480ceca81a273ff6de5ed27e9674bed61fffe2ef814a8e86f3506dfbbc7fd99d0747c301a361aee365ef0b1e4ec33152fd0ab25f50acb1f8edf048010cf3c3a8ca402985e2aafef3d8fea0daf18fcf2e1dc14fa063adc4380646a5615dd4439917b3a4f772cbf553cd225cff9c9835a3366d738519daba3037503865045be762156bc203af56dd56e2dc3e62a914b4eccdd50132880d16d26f0584fcd3ad24f8019e428d15ac1515ed3d74321cca0fb555e2e7d37565cf5f19ed9b50c5fbef6b0b1b1d5f84565c748 ...
# 开通 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 提供的是开发环境、测试环境和生产环境的一致性,细细想一下,是不是挺恐怖的。。。。。
以后我们开发人员再说什么 ...