您的位置:首页 > 文旅 > 美景 > 漂亮企业网站源码_工程资质加盟分公司_营销型网站更受用户欢迎的原因是_宁波seo优化外包公司

漂亮企业网站源码_工程资质加盟分公司_营销型网站更受用户欢迎的原因是_宁波seo优化外包公司

2024/10/5 22:26:52 来源:https://blog.csdn.net/qq_22701869/article/details/142644405  浏览:    关键词:漂亮企业网站源码_工程资质加盟分公司_营销型网站更受用户欢迎的原因是_宁波seo优化外包公司
漂亮企业网站源码_工程资质加盟分公司_营销型网站更受用户欢迎的原因是_宁波seo优化外包公司

1. 确保POM文件依赖正确

首先,确保你在pom.xml文件中正确地添加了Spring Data Elasticsearch和Elasticsearch的依赖:

<dependencies><!-- Spring Boot Starter 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><!-- Elasticsearch client --><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.17.6</version></dependency></dependencies>

2. 配置Elasticsearch连接

application.properties文件中配置Elasticsearch的连接信息:

spring.data.elasticsearch.client.reactive.endpoints=localhost:9200 
spring.data.elasticsearch.client.reactive.use-ssl=false
spring.elasticsearch.uris=http://localhost:9200

3. 创建Elasticsearch实体类

创建一个名为Product的实体类:

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;@Data
@Document(indexName = "product")
public class Product {@Idprivate String id;private String name;private Double price;
}

4. 创建存储库接口

创建一个名为ProductRepository的存储库接口

import com.example.demo.model.Product;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;@Repository
public interface ProductRepository extends ElasticsearchRepository<Product, String> {
}

5. 创建控制器

创建一个名为ProductController的REST控制器,定义基本的CRUD操作:

import com.example.demo.model.Product;
import com.example.demo.repository.ProductRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.Optional;@RestController
@RequestMapping("/products")
public class ProductController {@Autowiredprivate ProductRepository productRepository;@PostMappingpublic Product createProduct(@RequestBody Product product) {return productRepository.save(product);}@GetMapping("/{id}")public Product getProductById(@PathVariable String id) {Optional<Product> product = productRepository.findById(id);return product.orElse(null);}@PutMapping("/{id}")public Product updateProduct(@PathVariable String id, @RequestBody Product product) {product.setId(id);return productRepository.save(product);}@DeleteMapping("/{id}")public void deleteProduct(@PathVariable String id) {productRepository.deleteById(id);}@GetMappingpublic Iterable<Product> getAllProducts() {return productRepository.findAll();}
}

6. 启动Elasticsearch服务

确保你已经在本地或远程启动了Elasticsearch服务,默认端口为9200

7. 运行Spring Boot应用

启动Spring Boot应用,访问以下端点测试基本的CRUD操作:

创建产品(POST请求):http://localhost:8080/products
获取产品(GET请求):http://localhost:8080/products/{id}
更新产品(PUT请求):http://localhost:8080/products/{id}
删除产品(DELETE请求):http://localhost:8080/products/{id}
获取所有产品(GET请求):http://localhost:8080/products

测试请求

创建产品,post请求不指定id会自动生成id并返回
POST http://localhost:8080/products
Content-Type: application/json{"name": "Laptop","price": 1200.00
}

返回结果:这里的id是自动生成的id,给下面的接口使用

{"id": "r00DPpIBab4_XTIP0FK9","name": "Laptop","price": 1200.0
}

获取产品
GET http://localhost:8080/products/{id}即GET http://localhost:8080/products/r00DPpIBab4_XTIP0FK9
更新产品
PUT http://localhost:8080/products/{id} 
Content-Type: application/json 
{ "name": "Laptop Pro", "price": 1500.00 }

删除产品
DELETE http://localhost:8080/products/{id}

获取所有产品
GET http://localhost:8080/products

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com