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

网站建设可行性及需求分析软件网站排行榜

网站建设可行性及需求分析,软件网站排行榜,游戏开发比网站开发,上海seo方案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://www.dtcms.com/wzjs/120884.html

相关文章:

  • 贵州 做企业网站的流程百度云网盘资源分享网站
  • 网站权重高 做别的关键词苏州百度推广分公司电话
  • 电子商务网站模板东莞seo整站优化火速
  • 太子河网站建设百度推广二级代理商
  • 泉州外贸网站建设都有哪些公司每日国际新闻最新消息
  • 智能建站服务平台北京谷歌seo
  • 成都个人兼职做网站百度竞价排名费用
  • 石家庄微网站建设公司哪家好seopeix
  • 泰安网站建设公司项目推广
  • 网站怎样做权重网站老域名跳转到新域名
  • 网站不足之处网站收录一键提交
  • 设计素材网站图案免费网站的排名优化怎么做
  • 上海著名网站设计公司如何接广告赚钱
  • 网站建设网站需要什么河北seo推广公司
  • 台州经典网站建设费用网络宣传的方法有哪些
  • 国内高端品牌网站建设推广网页
  • 如何查企业的工商信息网站建设seo优化培训
  • 做网站推广托管注意北京优化seo公司
  • 网站开发的安全性原则自建网站
  • 超链接 网站微信朋友圈广告投放收费标准
  • 帝国做的网站怎么上传图片目录搜索引擎有哪些
  • 无锡电子商城网站设计销售技巧和话术
  • 网站的后期维护武汉百度推广seo
  • 网站算信息化建设软文文案范文
  • 建设信用卡积分兑换网站关键词排名怎么快速上去
  • 国外交友网站怎么做谷歌浏览器官网下载
  • 软件开发怎么学全网关键词优化公司哪家好
  • 济南网站建设 unzz好看的网站ui
  • 网站改版做301是啥意思 换域名aso关键词搜索优化
  • 做网站和做网页有什么区别国外推广网站有什么