【愚公系列】2023年11月 Java教学课程 208-ElasticSearch(初识和安装)

2024-01-07 19:30

本文主要是介绍【愚公系列】2023年11月 Java教学课程 208-ElasticSearch(初识和安装),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2022年CSDN博客之星TOP2,2022年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏

文章目录

  • 🚀前言
  • 🚀一、ElasticSearch的相关概念
    • 🔎1.初识ElasticSearch
      • 🦋1.1 了解ES
        • ☀️1.1.1 elasticsearch的作用
        • ☀️1.1.2 ELK技术栈
        • ☀️1.1.3 elasticsearch和lucene
        • ☀️1.1.4 搜索引擎技术排行榜
      • 🦋1.2 基于数据库查询的问题
      • 🦋1.3 倒排索引
      • 🦋1.4 ES和MySql的比较
      • 🦋1.5 ES使用场景
    • 🔎2.安装ElasticSearch
      • 🦋2.1 ES安装
        • ☀️2.1.1 Liunx下部署
        • ☀️2.1.2 Docker下部署
        • ☀️2.1.3 访问elasticsearch
      • 🦋2.2 ES辅助工具安装
        • ☀️2.2.1 Postman安装
        • ☀️2.2.2 Kibana安装
          • 🌈2.2.2.1 Liunx下安装
          • 🌈2.2.2.2 Docker下安装
        • ☀️2.2.3 head安装
          • 🌈2.2.3.1 Node安装
          • 🌈2.2.3.2 grunt安装
          • 🌈2.2.3.3 head安装
    • 🔎3.ElasticSearch核心概念
  • 🚀感谢:给读者的一封信


🚀前言

Elasticsearch是一个开源的分布式搜索引擎和数据分析引擎,它是建立在Lucene搜索引擎库之上的。 ElasticSearch被用于搜索、分析、存储、处理和可视化大量数据,其提供了丰富的查询语言、API和工具,可以快速准确地搜索和分析任意类型和大小的数据,而无需在存储或搜索方面做出任何妥协。 Elasticsearch的主要特点包括高可靠性、可扩展性、实时性、全文搜索、多语言支持、聚合分析、自然语言处理和地理空间搜索等功能。

资源文件下载地址:https://download.csdn.net/download/aa2528877987/88596281?spm=1001.2014.3001.5503

🚀一、ElasticSearch的相关概念

🔎1.初识ElasticSearch

🦋1.1 了解ES

☀️1.1.1 elasticsearch的作用

Elasticsearch是一个基于Lucene的搜索引擎,可以实现全文搜索、分析和实时数据处理。它可以用于处理各种类型的数据,包括文本、数字、地理空间数据等,并可以进行复杂的查询和分析操作。

使用场景如下:GitHub上搜索代码、电商搜索商品、百度、打车。
在这里插入图片描述

☀️1.1.2 ELK技术栈

ELK技术栈是指Elasticsearch、Logstash和Kibana三个开源软件的组合,用于处理大量的日志数据和实现实时分析、搜索和可视化。具体来说,ELK技术栈的作用如下:

  1. Elasticsearch:是一个分布式的搜索和分析引擎,可用于存储、搜索和分析各种类型的数据。它提供高效的全文搜索、聚合和过滤等功能,支持分布式架构,能够快速处理大量数据。

  2. Logstash:是一款数据处理管道,可以用于收集、转换和存储各种类型的数据。它支持多种数据源(如日志文件、消息队列等),可以进行数据清洗、转换和格式化,最终输出到Elasticsearch或其他存储系统。

  3. Kibana:是一款开源的数据可视化工具,可以用于展示和分析Elasticsearch中存储的数据。它提供丰富的图表、表格、地图等可视化组件,支持动态查询、过滤和分析数据。

ELK技术栈广泛应用于日志管理、系统监控、安全分析等领域,可以帮助用户快速发现和解决问题,提高数据分析效率。同时,ELK技术栈还可以与其他工具和系统集成,扩展其功能和应用场景。

在这里插入图片描述
在这里插入图片描述

☀️1.1.3 elasticsearch和lucene

Elasticsearch是一种分布式搜索和分析引擎,基于Lucene库构建。Lucene是一个Java库,用于全文检索和文本分析。 Elasticsearch是一个高度可扩展的搜索引擎,它简化了Lucene的使用,提供了基于REST的API,可以轻松地将数据存储和检索到分布式系统中。 Elasticsearch还提供了许多其他功能,例如实时分析,可视化和安全性。与Lucene相比,Elasticsearch更适合处理大量数据和高并发查询。

☀️1.1.4 搜索引擎技术排行榜

在这里插入图片描述

🦋1.2 基于数据库查询的问题

Mysql数据库性能瓶颈的出现会受到多种因素影响,比如硬件配置、数据库设计、SQL查询优化等,因此无法精确的回答何时会出现性能瓶颈。但是一般情况下,当数据量达到几千万行时,会开始出现性能问题,而当数据量达到上亿行时,性能问题将愈发严重,需要通过优化手段来解决。

在这里插入图片描述

🦋1.3 倒排索引

一个简单的倒排索引案例可以是一个搜索引擎。当用户在搜索引擎中输入一个查询词时,搜索引擎可以通过倒排索引来快速地找到包含该查询词的文档。

假设有以下三个文档:

  • 文档1:我爱北京天安门。
  • 文档2:上海是一个美丽的城市。
  • 文档3:北京欢迎你。

我们可以通过以下步骤来创建倒排索引:

  1. 对每个文档进行分词,得到词项列表:
  • 文档1:我,爱,北京,天安门。
  • 文档2:上海,是,一个,美丽,的,城市。
  • 文档3:北京,欢迎,你。
  1. 对每个词项建立索引,记录出现该词项的文档编号:
  • 北京:文档1、文档3
  • 天安门:文档1
  • 上海:文档2
  • 美丽:文档2
  • 欢迎:文档3
  • 你:文档3

通过这种方式,我们可以快速地找到包含任意查询词的文档,而不需要全文检索。例如,当用户在搜索引擎中查询“北京”时,搜索引擎可以直接查找包含“北京”的文档编号,然后返回相应的文档。

正向索引:

在这里插入图片描述

倒排索引:
在这里插入图片描述
在这里插入图片描述

🦋1.4 ES和MySql的比较

  • index(索引):相当于mysql的库
  • 映射:相当于mysql 的表结构
  • document(文档):相当于mysql的表中的数据

统一的把mysql与elasticsearch的概念做一下对比:

MySQLElasticsearch说明
TableIndex索引(index),就是文档的集合,类似数据库的表(table)
RowDocument文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式
ColumnField字段(Field),就是JSON文档中的字段,类似数据库中的列(Column)
SchemaMappingMapping(映射)是索引中文档的约束,例如字段类型约束。类似数据库的表结构(Schema)
SQLDSLDSL是elasticsearch提供的JSON风格的请求语句,用来操作elasticsearch,实现CRUD
  • Mysql:擅长事务类型操作,可以确保数据的安全和一致性

  • Elasticsearch:擅长海量数据的搜索、分析、计算

往往是两者结合使用:

  • 对安全性要求较高的写操作,使用mysql实现
  • 对查询性能要求较高的搜索需求,使用elasticsearch实现
  • 两者再基于某种方式,实现数据的同步,保证一致性

在这里插入图片描述

🦋1.5 ES使用场景

官网:https://www.elastic.co/

ES适用于以下场景:

  1. 分布式搜索:ES可以将大量数据分布式存储并索引,实现分布式搜索和聚合。它可以快速搜索和分析大规模日志、文档、网站、社交媒体等数据。

  2. 实时数据分析:ES可以对实时数据进行分析,如网络流量监控、实时日志分析等。它支持各种数据源,如Kafka、Logstash、Beats等,并可以将数据进行聚合、统计和可视化。

  3. 企业搜索:ES可以构建企业搜索引擎,提供搜索、过滤、聚合、推荐等功能。企业可以通过ES搜索内部文档、邮件、合同、客户数据等各种业务数据。

  4. 商品搜索:ES可以构建商品搜索引擎,提供高效的商品搜索、过滤、排序、聚合等功能。它可以快速返回搜索结果,并支持各种推荐算法。

  5. 日志分析:ES可以对日志进行实时分析,如错误日志、访问日志、系统监控等。它可以对日志进行分析、聚合、可视化,并发现潜在的问题和异常情况。

  6. 地理空间搜索:ES可以支持地理空间搜索和聚合,如查找附近的商家、搜索城市内的房源、分析用户位置等。它可以支持各种地理空间数据类型和查询语法。

🔎2.安装ElasticSearch

🦋2.1 ES安装

☀️2.1.1 Liunx下部署

1、上传ElasticSearch安装包

alt+p # 打开sftp窗口
# 上传es安装包
put e:/software/elasticsearch-7.4.0-linux-x86_64.tar.gz

2、执行解压操作 ,如下图

 # 将elasticsearch-7.4.0-linux-x86_64.tar.gz解压到opt文件夹下. -C 大写tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz  -C /opt

3、创建普通用户

因为安全问题,Elasticsearch 不允许root用户直接运行,所以要创建新用户,在root用户中创建新用户,执行如下命令:

useradd itheima  # 新增itheima用户
passwd  itheima  # 为itheima用户设置密码

4、为新用户授权,如下图

chown -R itheima:itheima /opt/elasticsearch-7.4.0 #文件夹所有者

将 /opt/elasticsearch-7.4.0文件夹授权给itheima用户,由上图可见,我们的文件夹权限赋给了itheima

5、修改elasticsearch.yml文件

vim /opt/elasticsearch-7.4.0/config/elasticsearch.yml 
# ======================== Elasticsearch Configuration =========================
cluster.name: my-application
node.name: node-1
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
  • cluster.name:配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称

  • node.name:节点名,elasticsearch会默认随机指定一个名字,建议指定一个有意义的名称,方便管理

  • network.host:设置为0.0.0.0允许外网访问

  • http.port:Elasticsearch的http访问端口

  • cluster.initial_master_nodes:初始化新的集群时需要此配置来选举master

6、修改配置文件

新创建的itheima用户最大可创建文件数太小,最大虚拟内存太小,切换到root用户,编辑下列配置文件, 添加类似如下内容

# 切换到root用户
su root #1. ===最大可创建文件数太小=======
vim /etc/security/limits.conf 
# 在文件末尾中增加下面内容
itheima soft nofile 65536
itheima hard nofile 65536
# =====
vim /etc/security/limits.d/20-nproc.conf
# 在文件末尾中增加下面内容
itheima soft nofile 65536
itheima hard nofile 65536
*  hard    nproc     4096
# 注:* 代表Linux所有用户名称	#2. ===最大虚拟内存太小=======
vim /etc/sysctl.conf
# 在文件中增加下面内容
vm.max_map_count=655360
# 重新加载,输入下面命令:
sysctl -p

7、启动elasticsearch

su itheima  # 切换到itheima用户启动
cd /opt/elasticsearch-7.4.0/bin
./elasticsearch #启动

在这里插入图片描述

☀️2.1.2 Docker下部署

1、创建网络

因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:

docker network create es-net

2、加载镜像

这里我们采用elasticsearch的7.12.1版本的镜像,这个镜像体积非常大,接近1G。不建议大家自己pull。

镜像的tar包文章头部可下载

大家将其上传到虚拟机中,然后运行命令加载即可:

# 导入数据
docker load -i es.tar

同理还有kibana的tar包也需要这样做。

3、运行

运行docker命令,部署单点es:

docker run -d \--name es \-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \-e "discovery.type=single-node" \-v es-data:/usr/share/elasticsearch/data \-v es-plugins:/usr/share/elasticsearch/plugins \--privileged \--network es-net \-p 9200:9200 \-p 9300:9300 \
elasticsearch:7.12.1

命令解释:

  • -e "cluster.name=es-docker-cluster":设置集群名称
  • -e "http.host=0.0.0.0":监听的地址,可以外网访问
  • -e "ES_JAVA_OPTS=-Xms512m -Xmx512m":内存大小
  • -e "discovery.type=single-node":非集群模式
  • -v es-data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录
  • -v es-logs:/usr/share/elasticsearch/logs:挂载逻辑卷,绑定es的日志目录
  • -v es-plugins:/usr/share/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录
  • --privileged:授予逻辑卷访问权
  • --network es-net :加入一个名为es-net的网络中
  • -p 9200:9200:端口映射配置
☀️2.1.3 访问elasticsearch

1、在访问elasticsearch前,请确保防火墙是关闭的,执行命令:

#暂时关闭防火墙
systemctl  stop  firewalld# 或者#永久设置防火墙状态
systemctl enable firewalld.service  #打开防火墙永久性生效,重启后不会复原 
systemctl disable firewalld.service #关闭防火墙,永久性生效,重启后不会复原 

浏览器输入http://IP:9200/,如下图

在这里插入图片描述

此时elasticsearch已成功启动:

number" : "7.4.0"   表示elasticsearch版本
lucene_version" : "8.2.0"  表示lucene版本
name : 默认启动的时候指定了 ES 实例名称
cluster_name : 默认名为 elasticsearch

查看elastic是否启动

ps -ef|grep elastic

🦋2.2 ES辅助工具安装

☀️2.2.1 Postman安装

1、什么是Postman

Postman是一款广受欢迎的API开发工具。它提供了一个可视化的界面,使开发人员能够轻松地创建、发送和调试API请求,同时还包括了对响应进行断言和验证的功能。此外,Postman还支持多种协议,包括HTTP、HTTPS、RESTful、SOAP等。它可以帮助团队协作、监视API和模拟数据。Postman可在多种操作系统上运行,包括Windows、Mac OSX和Linux。

官网:https://www.postman.com/

☀️2.2.2 Kibana安装
🌈2.2.2.1 Liunx下安装

1、什么是Kibana

Kibana是一个开源的数据分析和可视化平台,它是Elastic Stack中的一员,可以与Elasticsearch、Logstash以及Beats等组件一起使用。Kibana提供了一个直观的Web界面来对Elasticsearch中的数据进行搜索、分析、可视化和管理。它支持多种图表类型和可视化选项,可以帮助用户更好地理解和分析他们的数据。Kibana还提供了可自定义的仪表盘功能,可以将多个可视化组合在一起,从而形成一个完整的数据分析与监控系统。

2、上传kibana

CRT中克隆一个窗口,上传Kibana

put ‪E:\software\kibana-7.4.0-linux-x86_64.tar.gz

2、解压kibana

tar -xzf kibana-7.4.0-linux-x86_64.tar.gz -C /opt

解压到当前目录(/opt)下

3、修改kibana配置

vim /opt/kibana-7.4.0-linux-x86_64/config/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
server.name: "kibana-itcast"
elasticsearch.hosts: ["http://127.0.0.1:9200"]
elasticsearch.requestTimeout: 99999
  • server.port:http访问端口

  • server.host:ip地址,0.0.0.0表示可远程访问

  • server.name:kibana服务名

  • elasticsearch.hosts:elasticsearch地址

  • elasticsearch.requestTimeout:请求elasticsearch超时时间,默认为30000,此处可根据情况设置

4、启动kibana

由于kibana不建议使用root用户启动,如果用root启动,需要加–allow-root参数

# 切换到kibana的bin目录
cd /opt/kibana-7.4.0-linux-x86_64/bin
# 启动
./kibana --allow-root

在这里插入图片描述

启动成功。

5、访问kibana

1.浏览器输入http://IP:5601/,如下图:

http://IP:5601/

在这里插入图片描述

看到这个界面,说明Kibanan已成功安装。

  • Discover:可视化查询分析器

  • Visualize:统计分析图表

  • Dashboard:自定义主面板(添加图表)

  • Timelion:Timelion是一个kibana时间序列展示组件(暂时不用)

  • Dev Tools:Console控制台(同CURL/POSTER,操作ES代码工具,代码提示,很方便)

  • Management:管理索引库(index)、已保存的搜索和可视化结果(save objects)、设置 kibana 服务器属性。

后台启动

nohup ../bin/kibana &
🌈2.2.2.2 Docker下安装

1、部署

运行docker命令,部署kibana,同理先加载镜像: docker load -i kibana.tar,然后启动:

docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601  \
kibana:7.12.1
  • --network es-net :加入一个名为es-net的网络中,与elasticsearch在同一个网络中
  • -e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
  • -p 5601:5601:端口映射配置

kibana启动一般比较慢,需要多等待一会,可以通过命令:

docker logs -f kibana

查看运行日志,当查看到下面的日志,说明成功:

在这里插入图片描述

此时,在浏览器输入地址访问:http://IP:5601,即可看到结果

☀️2.2.3 head安装

Elasticsearch的head是一种可视化管理工具,用于管理Elasticsearch集群的健康状态、索引、文档、节点和分片等信息。它可以通过浏览器访问,并提供用户友好的界面,让用户可以方便地执行各种操作,例如搜索、过滤、排序、修改、删除等。head还支持导入和导出数据,以及自定义查询DSL。head是开源软件,可以通过GitHub获取源代码。

🌈2.2.3.1 Node安装

1、什么是Node

Node是一个基于Chrome V8引擎的JavaScript运行时环境,用于构建高效的网络应用程序。Node可以在服务器端运行JavaScript代码,并提供了许多内置模块,如文件系统、网络通信、加密等,使得开发者可以轻松地构建高性能的web应用。Node的特点包括非阻塞I/O和事件驱动的编程模型,使得它可以处理大量的并发请求,而不会导致程序阻塞。Node还拥有一个庞大的开源生态系统,许多流行的web框架和工具都可以在Node上使用。

2、下载Node

上一节我们已经安装好了Elasticsearch,接下来我们来安装head插件,由于elasticsearch-head插件是由nodejs语言编写,所以安装elasticsearch-head前需要先安装nodejs。
首先,执行以下命令安装nodejs和grunt

打开虚拟机,执行wget命令下载Node,如下图:

wget https://nodejs.org/dist/v10.15.2/node-v10.15.2-linux-x64.tar.xz

在这里插入图片描述

3、解压Node包

tar xvf node-v10.15.2-linux-x64.tar.xz

在这里插入图片描述

4、设置软连接

解压文件的 bin 目录底下包含了 node、npm 等命令,我们可以使用 ln 命令来设置软连接:

 ln -s bin/npm /usr/local/bin/ln -s bin/node /usr/local/bin/

在/etc/profile中配置好path环境变量

vi ~/.bash_profileexport NODE_HOME=/opt/nodejs/node-v10.15.2-linux-x64export PATH=$PATH:$NODE_HOME/bin

保存退出,使文件生效

source ~/.bash_profile

查看node安装版本,执行 node -v 验证安装如下图:

在这里插入图片描述

🌈2.2.3.2 grunt安装

安装grunt(运行在Node.js上面的任务管理器(task runner)),为了获得Grunt的更多产品特性,需要全局安装Grunt’s 命令行接口(CLI),使用npm进行安装,如下:

npm install -g grunt-cli

在这里插入图片描述

查看grunt版本

在这里插入图片描述

输出grunt版本信息,表示安装成功。

🌈2.2.3.3 head安装
  1. 执行命令安装git
git yum install git -y

在这里插入图片描述

  1. 切换到/opt目录下,执行下面的克隆命令
git clone git://github.com/mobz/elasticsearch-head.git

在这里插入图片描述

  1. 进入到elasticsearch-head目录
cd elasticsearch-head
  1. 运行

在运行之前我们需要修改下elasticsearch.yml,因为ES默认不开启跨域访问,需要添加以下配置:

#开启cors跨域访问支持,默认为false 
http.cors.enabled: true
#跨域访问允许的域名地址,(允许所有域名)以上使用正则
http.cors.allow-origin: "*"

然后开始执行运行命令:

npm run start

在这里插入图片描述

  1. 访问head

浏览器输入ip:port:9100,如下图

在这里插入图片描述

看到这个界面说明我们的head插件成功安装并且成功连接Elasticsearch。

🔎3.ElasticSearch核心概念

概念描述
索引(Index)包含多个文档的逻辑容器,类似于数据库中的表
文档(Document)一组字段(Key-Value)的集合,类似于数据库中的记录,每个文档都有一个唯一的ID
字段(Field)文档中的每个键值对,类似于数据库中的列
映射(Mapping)定义了文档中的字段和它们在ElasticSearch中的类型,指定了每个索引中的文档应该如何被分析和存储
分片(Shard)将索引分成多个分片来分布式存储和处理数据。每个分片是一个独立的Lucene索引
副本(Replica)每个分片可以有多个副本,用于提高搜索和读取速度,以及实现高可用性
节点(Node)ElasticSearch集群中的一个服务实例,可以存储和处理数据,参与搜索和聚合操作
集群(Cluster)一个或多个节点组成的逻辑集合,用于共同处理和存储数据,并提供搜索和聚合操作
搜索(Search)使用查询语句来检索文档的过程。查询可以包括搜索词、过滤条件、排序参数等
聚合(Aggregation)使用聚合语句来汇总和统计文档的过程。聚合可以包括计数、求和、平均、最大、最小等操作

🚀感谢:给读者的一封信

亲爱的读者,

我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。

如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。

我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。

如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。

在这里插入图片描述

再次感谢您的阅读和支持!

最诚挚的问候, “愚公搬代码”

这篇关于【愚公系列】2023年11月 Java教学课程 208-ElasticSearch(初识和安装)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/580997

相关文章

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Spring MVC如何设置响应

《SpringMVC如何设置响应》本文介绍了如何在Spring框架中设置响应,并通过不同的注解返回静态页面、HTML片段和JSON数据,此外,还讲解了如何设置响应的状态码和Header... 目录1. 返回静态页面1.1 Spring 默认扫描路径1.2 @RestController2. 返回 html2

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

Java操作ElasticSearch的实例详解

《Java操作ElasticSearch的实例详解》Elasticsearch是一个分布式的搜索和分析引擎,广泛用于全文搜索、日志分析等场景,本文将介绍如何在Java应用中使用Elastics... 目录简介环境准备1. 安装 Elasticsearch2. 添加依赖连接 Elasticsearch1. 创

Spring核心思想之浅谈IoC容器与依赖倒置(DI)

《Spring核心思想之浅谈IoC容器与依赖倒置(DI)》文章介绍了Spring的IoC和DI机制,以及MyBatis的动态代理,通过注解和反射,Spring能够自动管理对象的创建和依赖注入,而MyB... 目录一、控制反转 IoC二、依赖倒置 DI1. 详细概念2. Spring 中 DI 的实现原理三、

SpringBoot 整合 Grizzly的过程

《SpringBoot整合Grizzly的过程》Grizzly是一个高性能的、异步的、非阻塞的HTTP服务器框架,它可以与SpringBoot一起提供比传统的Tomcat或Jet... 目录为什么选择 Grizzly?Spring Boot + Grizzly 整合的优势添加依赖自定义 Grizzly 作为