最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot 集成 Solr 的詳細(xì)示例

 更新時(shí)間:2025年05月20日 11:20:44   作者:搬磚牛馬人  
這篇文章主要介紹了Spring Boot 集成 Solr 的詳細(xì)示例,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧

環(huán)境準(zhǔn)備

  • 安裝 Solr :從 Solr 官網(wǎng)(Welcome to Apache Solr - Apache Solr)下載并安裝最新版本,然后通過(guò)命令 bin/solr start 啟動(dòng) Solr 服務(wù),使用 bin/solr create -c mycore 創(chuàng)建一個(gè)新的 Solr 核心。
  • 安裝 JDK :確保安裝了 JDK 8 及以上版本。
  • 配置 Maven :以 Maven 作為項(xiàng)目構(gòu)建工具,創(chuàng)建 Spring Boot 項(xiàng)目。

添加依賴

在 Spring Boot 項(xiàng)目的 pom.xml 文件中添加以下依賴:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-solr</artifactId>
</dependency>

此依賴會(huì)自動(dòng)配置 Spring Data Solr 的相關(guān)組件,包括 Solr 客戶端和 Spring Solr 支持。

配置 Solr 連接

application.propertiesapplication.yml 文件中添加 Solr 的連接配置,示例如下:

application.properties

spring.data.solr.host=http://localhost:8983/solr
spring.data.solr.core=mycore

application.yml

spring:
  data:
    solr:
      host: http://localhost:8983/solr
      core: mycore

定義實(shí)體類

創(chuàng)建一個(gè)實(shí)體類用于映射 Solr 中的文檔,示例如下:

package cn.juwatech.model;
import org.apache.solr.client.solrj.beans.Field;
import org.springframework.data.annotation.Id;
import org.springframework.data.solr.core.mapping.SolrDocument;
@SolrDocument(collection = "mycore")
public class Product {
    @Id
    @Field
    private String id;
    @Field
    private String name;
    @Field
    private String description;
    @Field
    private double price;
    // Getters and Setters
}

其中,@SolrDocument(collection = "mycore") 指定了 Solr 的核心名稱,@Field 注解用于將實(shí)體類的字段映射到 Solr 文檔的字段。

編寫 Repository 接口

創(chuàng)建一個(gè)繼承自 SolrCrudRepository 的接口來(lái)操作 Solr 中的數(shù)據(jù),示例如下:

package cn.juwatech.repository;
import cn.juwatech.model.Product;
import org.springframework.data.solr.repository.SolrCrudRepository;
import java.util.List;
public interface ProductRepository extends SolrCrudRepository<Product, String> {
    List<Product> findByNameContaining(String name);
}

通過(guò)繼承 SolrCrudRepository 接口,可方便地進(jìn)行文檔的增刪改查操作,findByNameContaining 方法可用于按名稱模糊查詢。

創(chuàng)建 Service 與 Controller

創(chuàng)建 Service :封裝業(yè)務(wù)邏輯,示例如下:

package cn.juwatech.service;
import cn.juwatech.model.Product;
import cn.juwatech.repository.ProductRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ProductService {
    @Autowired
    private ProductRepository productRepository;
    public void saveProduct(Product product) {
        productRepository.save(product);
    }
    public List<Product> searchByName(String name) {
        return productRepository.findByNameContaining(name);
    }
    public void deleteProduct(String id) {
        productRepository.deleteById(id);
    }
}

創(chuàng)建 Controller :處理 HTTP 請(qǐng)求,示例如下:

package cn.juwatech.controller;
import cn.juwatech.model.Product;
import cn.juwatech.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/products")
public class ProductController {
    @Autowired
    private ProductService productService;
    @PostMapping
    public void addProduct(@RequestBody Product product) {
        productService.saveProduct(product);
    }
    @GetMapping("/search")
    public List<Product> searchProducts(@RequestParam String name) {
        return productService.searchByName(name);
    }
    @DeleteMapping("/{id}")
    public void deleteProduct(@PathVariable String id) {
        productService.deleteProduct(id);
    }
}

示例運(yùn)行與測(cè)試

添加產(chǎn)品 :?jiǎn)?dòng) Spring Boot 應(yīng)用后,發(fā)送 POST 請(qǐng)求添加產(chǎn)品,如使用 curl 命令:

curl -X POST -H "Content-Type: application/json" -d '{"id":"1","name":"Laptop","description":"High performance laptop","price":1000}' http://localhost:8080/products

搜索產(chǎn)品 :發(fā)送 GET 請(qǐng)求搜索產(chǎn)品:

curl http://localhost:8080/products/search?name=Laptop

刪除產(chǎn)品 :發(fā)送 DELETE 請(qǐng)求刪除產(chǎn)品:

curl -X DELETE http://localhost:8080/products/1

到此這篇關(guān)于Spring Boot 集成 Solr 的詳細(xì)示例的文章就介紹到這了,更多相關(guān)Spring Boot 集成 Solr內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot項(xiàng)目中feignClient使用方式

    SpringBoot項(xiàng)目中feignClient使用方式

    文章介紹了在Spring Boot項(xiàng)目中配置Feign客戶端攔截器的具體步驟,包括在application.yml中添加配置、在主類上啟用組件掃描、將攔截器加入到攔截器列表中以及在接口調(diào)用時(shí)的說(shuō)明,總結(jié)指出這是個(gè)人經(jīng)驗(yàn)分享,希望對(duì)大家有所幫助
    2024-11-11
  • Java多線程中的ReentrantLock可中斷鎖詳細(xì)解讀

    Java多線程中的ReentrantLock可中斷鎖詳細(xì)解讀

    這篇文章主要介紹了Java多線程中的ReentrantLock可中斷鎖詳細(xì)解讀,ReentrantLock中的lockInterruptibly()方法使得線程可以在被阻塞時(shí)響應(yīng)中斷,比如一個(gè)線程t1通過(guò)lockInterruptibly()方法獲取到一個(gè)可重入鎖,并執(zhí)行一個(gè)長(zhǎng)時(shí)間的任務(wù),需要的朋友可以參考下
    2023-12-12
  • Java中隨機(jī)數(shù)生成常見(jiàn)的幾種方式及適用場(chǎng)景

    Java中隨機(jī)數(shù)生成常見(jiàn)的幾種方式及適用場(chǎng)景

    在Java中生成隨機(jī)數(shù)的場(chǎng)景有很多,這篇文章主要給大家介紹了關(guān)于Java中隨機(jī)數(shù)生成常見(jiàn)的幾種方式及適用場(chǎng)景,包括基礎(chǔ)(Random/Math.random)、加密安全(SecureRandom)、位數(shù)控制及第三方庫(kù),需要的朋友可以參考下
    2025-05-05
  • SpringBoot2種單元測(cè)試方法解析

    SpringBoot2種單元測(cè)試方法解析

    這篇文章主要介紹了SpringBoot2種單元測(cè)試方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • SpringBoot訂單超時(shí)自動(dòng)取消的三種主流實(shí)現(xiàn)方案

    SpringBoot訂單超時(shí)自動(dòng)取消的三種主流實(shí)現(xiàn)方案

    在電商、外賣、票務(wù)等業(yè)務(wù)中,下單后若 30 分鐘未支付則自動(dòng)取消是一道經(jīng)典需求,實(shí)現(xiàn)方式既要保證 實(shí)時(shí)性,又要在 高并發(fā) 下保持 低成本、高可靠,本文基于 Spring Boot,給出 3 種生產(chǎn)級(jí)落地方案,并附完整代碼與選型對(duì)比,需要的朋友可以參考下
    2025-07-07
  • 基于常用json框架介紹和Jackson返回結(jié)果處理方式

    基于常用json框架介紹和Jackson返回結(jié)果處理方式

    這篇文章主要介紹了基于常用json框架介紹和Jackson返回結(jié)果處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • SpringBoot2自動(dòng)裝配原理解析

    SpringBoot2自動(dòng)裝配原理解析

    這篇文章主要介紹了SpringBoot2自動(dòng)裝配原理解析,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Java 中利用泛型和反射機(jī)制抽象DAO的實(shí)例

    Java 中利用泛型和反射機(jī)制抽象DAO的實(shí)例

    這篇文章主要介紹了Java 中利用泛型和反射機(jī)制抽象DAO的實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Mybatis中的高級(jí)映射一對(duì)一、一對(duì)多、多對(duì)多

    Mybatis中的高級(jí)映射一對(duì)一、一對(duì)多、多對(duì)多

    這篇文章主要介紹了Mybatis中的高級(jí)映射一對(duì)一、一對(duì)多、多對(duì)多的相關(guān)資料,需要的朋友可以參考下
    2016-08-08
  • springboot切面添加日志功能實(shí)例詳解

    springboot切面添加日志功能實(shí)例詳解

    在本篇文章里小編給大家整理的是關(guān)于springboot 切面添加日志功能的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以參考下。
    2019-09-09

最新評(píng)論

安西县| 微博| 秦安县| 司法| 郧西县| 建湖县| 巨野县| 阿勒泰市| 随州市| 永丰县| 阳山县| 灌云县| 汝城县| 盐源县| 安徽省| 林周县| 略阳县| 枣阳市| 金昌市| 建平县| 调兵山市| 乌兰察布市| 新营市| 印江| 九寨沟县| 闽清县| 大连市| 太康县| 吉林市| 秀山| 庆云县| 东丽区| 牙克石市| 寿光市| 岚皋县| 宁武县| 巢湖市| 拉孜县| 镇原县| 九龙城区| 茶陵县|