欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Spring-Boot集成Solr客戶端的示例分析-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“Spring-Boot集成Solr客戶端的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Spring-Boot集成Solr客戶端的示例分析”這篇文章吧。

平山ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

Solr 是基于 Lucene 的全文檢索服務(wù)器,可配置、可擴(kuò)展,并對(duì)索引和搜索性能進(jìn)行了優(yōu)化。Solr 多用于電子商務(wù)網(wǎng)站、門戶、論壇這類網(wǎng)站的站內(nèi)搜索。Solr 可以獨(dú)立運(yùn)行在 Jetty、Tomcat 等這些 Servlet 容器中。Solr 索引的實(shí)現(xiàn)非常簡(jiǎn)單,用 POST 方法去向 Solr服務(wù)器發(fā)送一個(gè)描述 Field 及其內(nèi)容的 JSON 文檔,Solr 根據(jù) JSON 文件增刪改索引。Solr 搜索只需要發(fā)送 HTTP GET 請(qǐng)求,然后對(duì) Solr 返回 JSON 格式的查詢結(jié)果進(jìn)行解析,組織頁面布局。Solr 不提供構(gòu)建 UI 的功能,Solr提供了一個(gè)管理界面,通過管理界面可以查詢 Solr 的配置和運(yùn)行情況。

tips: IDEA的快速查找類快捷鍵 (連續(xù)按兩次 shift 鍵)

1) maven配置:

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.2.RELEASE</version>
  </parent>

  <properties>
    <spring.data.solr.version>2.1.1.RELEASE</spring.data.solr.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-solr</artifactId>
        <version>${spring.data.solr.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <!--添加Web依賴, 使項(xiàng)目變成web項(xiàng)目-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.data</groupId>
      <artifactId>spring-data-solr</artifactId>
    </dependency>

    <!--test-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
  </dependencies>

2) SpringBoot 快速啟動(dòng)

@SpringBootApplication
@EnableAutoConfiguration
public class AppMain {

  public static void main(String[] args) {
    SpringApplication.run(AppMain.class, args);
  }
}

可能遇見的問題:

1. 一般spring-boot項(xiàng)目的啟動(dòng)類都放在項(xiàng)目的根路徑下, 這樣可以不用配置@ComponentScan注解來掃描相應(yīng)的類, 如果遇到無法讀取配置類屬性的情況, 首先考慮這個(gè)因素

3) 在resources下新建application.properties, 完成solr的基本配置

spring.data.solr.host=http://127.0.0.1:8983/solr

這個(gè)屬性配置的是solr服務(wù)器的訪問地址, 因?yàn)楸卷?xiàng)目是作為客戶端來訪問solr服務(wù)器, 所以不用做更多的配置

這個(gè)屬性是是通過@ConfigurationProperties("spring.data.solr")讀取出來的, 默認(rèn)被讀取到 SolrProperties.class 中 詳情請(qǐng)使用類查找器查看該類

4) 新建一個(gè)Controller用來查詢Solr服務(wù)器數(shù)據(jù)

@RestController
public class SolrController {

  @Autowired
  private SolrClient client;

  @RequestMapping("/")
  public String testSolr() throws IOException, SolrServerException {
    SolrDocument document = client.getById("test", "fe7a5124-d75b-40b2-93fe-5555512ea6d2");
    System.out.println(document);
    return document.toString();
  }
}

數(shù)據(jù)是我提前導(dǎo)入的, 這里使用ID查詢結(jié)果
SolrDocument{goodsId=[129831], id=fe7a5124-d75b-40b2-93fe-5555512ea6d2, _version_=1562570354094768128}

5) solr集成結(jié)束, 但問題來了

問題1: 為什么沒有配置SolrClient, 但卻自動(dòng)注入成功了呢?
問題2: 它是在什么地方被注入到BeanFactory的? (@Autowired能夠注入成功說明該類存在于其中)
問題3: 能不能自己配置?
問題4: 有沒有必要自己配置?

6) 解決問題1, 和問題2:

SolrAutoConfiguration 是Solr自動(dòng)配置的類, 在Spring-Boot啟動(dòng)的時(shí)候會(huì)自動(dòng)加載屬性, 注入SolrClient類

@Configuration
@ConditionalOnClass({ HttpSolrClient.class, CloudSolrClient.class })
@EnableConfigurationProperties(SolrProperties.class)
public class SolrAutoConfiguration {

  private final SolrProperties properties;

  private SolrClient solrClient;

  public SolrAutoConfiguration(SolrProperties properties) {
    this.properties = properties;
  }

  @Bean
  @ConditionalOnMissingBean
  public SolrClient solrClient() {
    this.solrClient = createSolrClient();
    return this.solrClient;
  }

  private SolrClient createSolrClient() {
    if (StringUtils.hasText(this.properties.getZkHost())) {
      return new CloudSolrClient(this.properties.getZkHost());
    }
    return new HttpSolrClient(this.properties.getHost());
  }

}

當(dāng)我們引入

<dependency>
  <groupId>org.springframework.data</groupId>
  <artifactId>spring-data-solr</artifactId>
  <version>${spring.data.solr.version}</version>
</dependency>

這個(gè)自動(dòng)配置就會(huì)因?yàn)槲覀冊(cè)贏ppMain.java上配置的@EnableAutoConfiguration注解生效, 這樣就會(huì)自動(dòng)注入Bean了

7) 解決問題3, 問題4

肯定是可以自己配置的, 配置方式也非常簡(jiǎn)單
只需要自己編寫一個(gè)類, 使用@Configuration注解, 并且配置一個(gè)@Bean, 返回SolrClient就可以了

@Configuration
public class SolrClientConfiguration {

  @Autowired
  private Environment environment;

  @Bean
  public SolrClient solrClient() {
    System.out.println("自定義配置SolrClient");
    return new HttpSolrClient(environment.getRequiredProperty("spring.data.solr.host"));
  }
}

啟動(dòng)結(jié)果

2017-03-23 10:32:17.414 INFO 10359 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean  : Mapping filter: 'requestContextFilter' to: [/*]
自定義配置SolrClient
2017-03-23 10:32:18.178 INFO 10359 --- [      main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@160f0c04: startup date [Thu Mar 23 10:32:15 CST 2017]; root of context hierarchy

也就是自定義配置完成

我建議不使用自定義的配置方式, 因?yàn)樗械淖詣?dòng)裝配已經(jīng)非常方便了. 并且可以根據(jù)是否配置zookeeper來判斷使用單機(jī)版或者集群版.

現(xiàn)在能使用SolrClient了, 剩下的是需要封裝工具類, 完成客戶端的查詢和更新操作就OK了

以上是“Spring-Boot集成Solr客戶端的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

本文名稱:Spring-Boot集成Solr客戶端的示例分析-創(chuàng)新互聯(lián)
瀏覽地址:http://www.aaarwkj.com/article14/dohgde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、電子商務(wù)、網(wǎng)站排名、網(wǎng)站改版網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
日韩电影在线观看二区| 亚洲一区二区视频精品| 日韩亚洲欧美成人一区| 人妻丝袜中文字幕在线| 国产偷自一区二区三区| 亚洲精品午夜福利网| 国产原创av剧情在线播放| 在线亚洲av不卡一区二区三区 | 国产精品蜜臀av在线一区| 日韩免费黄色av网站| 亚洲区一区二区三区精品| 男女性视频在线免费观看| 丰满少妇在线观看网站| 免费在线观看av不卡| 成人三级中文字幕电影| 国产亚洲男人av一区三区| 国产中文字幕婷婷丁香| 亚洲欧美成人自偷自拍一区| 18禁视频免费无遮挡| 日本人妻成人免费大片| 婷婷国产综合一区二区三区| 丰满少妇一区二区三区在线观看| 91麻豆精品在线观看| 中文字幕在线日韩精品| 长腿丝袜美女亚洲一区二区| 内射小美女阴户毛片在线| 久久亚洲一区二区内射| 东京一区二区三区四区黄片| 少妇被按摩高潮在线观看| 精品欧美激情精品一区| 男女生做刺激性视频网站| 97精品国产高清在线| 国产成人原创免费观看| 日韩精品极品在线视频观看免费| 成人国产午夜福利网| 人妻少妇系列一区二区| 亚州精品少妇久久久久久| 麻豆av永久地址久久精品| 亚洲成熟中老妇女视频| 色婷婷av一区二区三| 国产精品一区二区精品|