Spring Boot 整合 Elasticsearch 的方法有很多种,以下是一种常见的方法:
添加依赖
在
pom.xml
中添加 Spring Data Elasticsearch 的依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<!-- 其他依赖 -->
</dependencies>
配置 Elasticsearch
在
application.properties
或application.yml
中配置 Elasticsearch 的基本信息:
# application.properties
spring.data.elasticsearch.cluster-name=elasticsearch
spring.data.elasticsearch.cluster-nodes=localhost:9300
spring.data.elasticsearch.repositories.enabled=true
创建实体
创建一个实体类,用于映射 Elasticsearch 中的文档:
@Document(indexName = "product", type = "product")
public class Product {
@Id
private String id;
private String name;
private double price;
// 省略 getter 和 setter 方法
}
创建 Repository
创建一个 Elasticsearch Repository 接口:
public interface ProductRepository extends ElasticsearchRepository<Product, String> {
// 可以定义一些查询方法,Spring Data Elasticsearch 会自动实现
}
使用 Repository
在服务中注入
ProductRepository
,并使用它进行操作:
@Service
public class ProductService {
@Autowired
private ProductRepository productRepository;
public List<Product> findAll() {
return productRepository.findAll();
}
public Product save(Product product) {
return productRepository.save(product);
}
// 其他业务方法
}
创建 Controller
提供 RESTful API 接口:
@RestController
@RequestMapping("/api/products")
public class ProductController {
@Autowired
private ProductService productService;
@GetMapping
public List<Product> getAllProducts() {
return productService.findAll();
}
@PostMapping
public Product saveProduct(@RequestBody Product product) {
return productService.save(product);
}
// 其他接口方法
}
以上就是一个简单的 Spring Boot 整合 Elasticsearch 的例子。这个例子展示了