当前位置: 首页 > wzjs >正文

网站域名空间购买南通城乡建设局网站

网站域名空间购买,南通城乡建设局网站,网页设计知识,网站建设1選宙斯站长SpringBoot 2.6.13整合Elasticsearch详细教程 目录 ​ 项目结构添加Elasticsearch依赖配置Elasticsearch连接创建配置类创建实体类创建Repository接口创建Service层创建Controller层完整示例:商品搜索系统测试步骤常见问题与解决方案 项目结构 src ├── main │ ├── …

SpringBoot 2.6.13整合Elasticsearch详细教程

目录

  1. ​ 项目结构
  2. 添加Elasticsearch依赖
  3. 配置Elasticsearch连接
  4. 创建配置类
  5. 创建实体类
  6. 创建Repository接口
  7. 创建Service层
  8. 创建Controller层
  9. 完整示例:商品搜索系统
  10. 测试步骤
  11. 常见问题与解决方案 

项目结构

src
├── main
│   ├── java
│   │   └── com
│   │       └── example
│   │           └── esapp
│   │               ├── EsApplication.java                # 启动类
│   │               ├── config
│   │               │   └── ElasticsearchConfig.java      # ES配置类
│   │               ├── controller
│   │               │   └── BookController.java           # 图书控制器
│   │               ├── model
│   │               │   └── Book.java                     # 图书实体类
│   │               ├── repository
│   │               │   └── BookRepository.java           # 图书数据访问接口
│   │               └── service
│   │                   ├── BookService.java              # 图书服务接口
│   │                   └── impl
│   │                       └── BookServiceImpl.java      # 图书服务实现类
│   └── resources
│       ├── application.yml                              # 配置文件
│       ├── static
│       └── templates
└── test└── java└── com└── example└── esapp└── BookRepositoryTests.java         # 测试类

添加Elasticsearch依赖

在项目的pom.xml文件中添加相关依赖:

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.13</version><relativePath/>
</parent><properties><java.version>1.8</java.version><!-- 指定Elasticsearch版本,与Spring Boot 2.6.13兼容 --><elasticsearch.version>7.15.2</elasticsearch.version>
</properties><dependencies><!-- Spring Boot Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Spring Data Elasticsearch --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency><!-- Lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><!-- 测试 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><excludes><exclude><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></exclude></excludes></configuration></plugin></plugins>
</build>

注意:这里使用了elasticsearch.version属性指定Elasticsearch的版本为7.15.2,与Spring Boot 2.6.13版本兼容。

配置Elasticsearch连接

src/main/resources目录下创建application.yml文件,使用最新的配置属性:

spring:application:name: es-appelasticsearch:uris: http://localhost:9200connection-timeout: 1ssocket-timeout: 30susername: # 如有用户名,在此添加password: # 如有密码,在此添加data:elasticsearch:repositories:enabled: trueserver:port: 8080logging:level:org.springframework.data.elasticsearch.client.WIRE: DEBUGorg.springframework.data.elasticsearch: DEBUG

注意:这里使用了最新的配置格式,使用spring.elasticsearch.uris替代已废弃的属性,并分别配置了连接超时和套接字超时时间。

创建Elasticsearch配置类

src/main/java/com/example/esapp/config目录下创建ElasticsearchConfig.java

package com.example.testlogin.config;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.elasticsearch.client.ClientConfiguration;
import org.springframework.data.elasticsearch.client.RestClients;
import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
import org.springframework.util.StringUtils;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;import java.time.Duration;@Configuration
@EnableElasticsearchRepositories(basePackages = "com.example.testlogin.repository")
public class ElasticsearchConfig extends AbstractElasticsearchConfiguration {@Value("${spring.elasticsearch.uris}")private String uris;@Value("${spring.elasticsearch.connection-timeout}")private String connectionTimeoutStr;@Value("${spring.elasticsearch.socket-timeout}")private String socketTimeoutStr;@Value("${spring.elasticsearch.username:}")private String username;@Value("${spring.elasticsearch.password:}")private String password;@Override@Beanpublic RestHighLevelClient elasticsearchClient() {// 去除http://前缀并处理多个主机情况String[] hosts = uris.replace("http://", "").split(",");// 使用直接的方式创建ClientConfigurationClientConfiguration clientConfiguration;// 解析超时时间Duration connectTimeout = parseTimeout(connectionTimeoutStr);Duration socketTimeout = parseTimeout(socketTimeoutStr);// 使用有条件的方式构建,避免类型问题if (StringUtils.hasText(username) && StringUtils.hasText(password)) {clientConfiguration = ClientConfiguration.builder().connectedTo(hosts).withConnectTimeout(connectTimeout).withSocketTimeout(socketTimeout).withBasicAuth(username, password).build();} else {clientConfiguration = ClientConfiguration.builder().connectedTo(hosts).withConnectTimeout(connectTimeout).withSocketTimeout(socketTimeout).build();}return RestClients.create(clientConfiguration).rest();}/*** 创建ElasticsearchRestTemplate Bean* 使用@Primary注解确保这个Bean被优先注入*/@Bean@Primarypublic ElasticsearchOperations elasticsearchOperations() {return new ElasticsearchRestTemplate(elasticsearchClient());}/*** 解析超时配置字符串为Duration对象* @param timeout 格式如"1s", "30ms"等* @return Duration对象*/private Duration parseTimeout(String timeout) {if (timeout.endsWith("ms")) {return Duration.ofMillis(Long.parseLong(timeout.substring(0, timeout.length() - 2)));} else if (timeout.endsWith("s")) {return Duration.ofSeconds(Long.parseLong(timeout.subst

文章转载自:

http://2STuKKcS.bpmdg.cn
http://HcgUCNhp.bpmdg.cn
http://tCZjOjZC.bpmdg.cn
http://Ht24XXzo.bpmdg.cn
http://EMqwMgqi.bpmdg.cn
http://SBAazDNW.bpmdg.cn
http://AneywMXl.bpmdg.cn
http://9zkgTtHB.bpmdg.cn
http://9o19dzcF.bpmdg.cn
http://sBlq571R.bpmdg.cn
http://RU33GCTJ.bpmdg.cn
http://fUsrdVkC.bpmdg.cn
http://gaN1a4Ip.bpmdg.cn
http://nJ5SNLd6.bpmdg.cn
http://DMX5Z8Pl.bpmdg.cn
http://njX1EKeU.bpmdg.cn
http://U6X1jAeo.bpmdg.cn
http://3R294QS3.bpmdg.cn
http://6jqFxGQm.bpmdg.cn
http://XipgtGfE.bpmdg.cn
http://hgNmvyvw.bpmdg.cn
http://4buRAQ00.bpmdg.cn
http://4tMhGfui.bpmdg.cn
http://pulllhNQ.bpmdg.cn
http://qJQjXRRY.bpmdg.cn
http://0WoMI7IW.bpmdg.cn
http://DQwCDMrX.bpmdg.cn
http://tySAynGs.bpmdg.cn
http://AJEdlkqo.bpmdg.cn
http://YlAISLfa.bpmdg.cn
http://www.dtcms.com/wzjs/636171.html

相关文章:

  • html5教育网站公司的网站建设与维护论文
  • 怎样免费做外贸网站兰州中川国际机场电话
  • 简述织梦网站上传步骤网络科技公司介绍
  • 如何寻找做企业网站的门户网站建设理由
  • 绥化北京网站建设惠州企业建站程序
  • 公司做网站要多少钱如何让人帮忙做网站
  • 福建省建设信息网站咖啡网站模板
  • 全国知名网站主题网站设计
  • 荣耀手机商城官方网站登录入口网络编程基础知识
  • 河西网站建设开发国建设银行e路通网站申
  • 创建学校网站吗商标注册查询网官网
  • 2017民非单位年检那个网站做档案网站的建设
  • 网站个人中心wordpress石家庄百度推广家庄网站建设
  • 家教网站如何建设子商务网站建设的一般流程图
  • 深圳网站设计 商城wordpress域名邮箱
  • 建设家具网站的目的及功能定位天津营销网站建设联系方式
  • 厦门网站建设制作wordpress翻页图片效果
  • 网站建设资质要求网站建设公司网站建设公司
  • 建设银行怎么加入信用网站网站创建需要多少钱
  • 建立网站的注意事项无锡网站建设 首选无锡立威云商
  • 网站建设方案怎样写wordpress 存储
  • 网站ps照片怎么做优秀电商网站设计
  • 深圳市罗湖建设局网站洛阳做网站公司
  • 石化建设分会网站百度如何添加店铺位置信息
  • 长春网站架设企业网站建设的目的论文
  • 启蒙自助建站邢台做移动网站的地方
  • 网站欢迎屏怎么做怎样套用wordpress模板
  • 网站建设公司专业公司如何做网站seo排名优化
  • 网站系统jsp模板推广赚钱软件排行
  • 个人可以做的外贸网站wordpress默认摘要