1. 程式人生 > >maven專案下solr和spring的整合配置

maven專案下solr和spring的整合配置

solrspring整合其實很簡單,只要注意匯入依賴的配置檔案即可。廢話不多說,上程式碼。

第一步:編寫maven專案的pom檔案,匯入依賴

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.millery.spring_solr</groupId>
	<artifactId>spring-solr</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>


	<!-- 新增依賴 -->
	<dependencies>

		<!-- Spring依賴 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>4.1.3.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>4.1.3.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>4.1.3.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
			<version>4.1.3.RELEASE</version>
		</dependency>

		<!--solr客戶端solrj的依賴 -->
		<dependency>
			<groupId>org.apache.solr</groupId>
			<artifactId>solr-solrj</artifactId>
			<version>4.10.1</version>
		</dependency>
		
		<!-- junit測試 -->
		<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>4.10</version>
				<scope>test</scope>
			</dependency>

	</dependencies>
</project>

第二步:編寫applicationContext-solr.xmlsolr.properties配置檔案

applicationContext-solr.xml配置檔案的內容:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
	
	<!--定義solr的server-->
	<bean id="httpSolrServer" class="org.apache.solr.client.solrj.impl.HttpSolrServer">
		<constructor-arg index="0" value="${solr.Url}"/>
	<!-- 設定響應解析器 -->	
		<property name="parser">
			<bean class="org.apache.solr.client.solrj.impl.XMLResponseParser"/>
		</property>
		<!-- 設定重試次數-->
		<property name="maxRetries" value="${solr.maxRetries}"/>
		<!-- 建立連線的最長時間 -->
		<property name="connectionTimeout" value="${solr.connectionTimeout}"/>
	</bean>


</beans>

solr.properties配置檔案的內容:

solr.Url=http://127.0.0.1:8983/millery
solr.maxRetries=1
solr.connectionTimeout=500

第三步:編寫applicationContext.xml配置檔案

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

	<!--配置service的包掃描,自動注入Service -->
	<context:component-scan base-package="com.millery" />

	<!-- 使用spring自帶的佔位符替換功能 -->
	<bean
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<!-- 允許JVM引數覆蓋 -->
		<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
		<!-- 忽略沒有找到的資原始檔 -->
		<property name="ignoreResourceNotFound" value="true" />
		<!-- 配置資原始檔 -->
		<property name="locations">
			<list>
				<value>classpath:solr.properties</value>
			</list>
		</property>
<a target=_blank href="http://write.blog.csdn.net/User.java"><span style="color: rgb(0, 0, 255);"></span></a><pre name="code" class="html"><span style="white-space:pre">	</span></bean>
</beans>

第四步:寫測試程式碼

User實體類:

package com.millery.spring_solr.pojo;

/**
 * 
 * @專案名稱:spring-solr
 * @類名稱:User
 * @類描述:使用者實體類
 * @建立人:millery
 * @建立時間:2015年11月5日 上午10:42:43 
 * @version:
 */
public class User {

	private Long id;// 使用者編號
	private String username;// 使用者名稱
	private String loginPwd;// 使用者登入密碼
	private String email;// 使用者郵箱

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getLoginPwd() {
		return loginPwd;
	}

	public void setLoginPwd(String loginPwd) {
		this.loginPwd = loginPwd;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", loginPwd="
				+ loginPwd + ", email=" + email + "]";
	}
}

SpringSolr類:

</pre></p><p>SpringSolr<span style="font-family:宋體;">類:</span></p><p><pre name="code" class="html">package com.millery.spring_solr.test;

import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.millery.spring_solr.pojo.User;

/**
 * 
 * @專案名稱:spring-solr
 * @類名稱:SpringSolrTest
 * @類描述:測試類
 * @建立人:millery 
 * @建立時間:2015年11月5日 上午10:48:57 
 * @version:
 */
@Component
public class SpringSolr {

	@Autowired
	private HttpSolrServer httpSolrServer;

	public User getUser(Long id) throws SolrServerException {

		//建立查詢條件
		SolrQuery query = new SolrQuery();
		query.setQuery("id:" + id);
		
		//查詢並返回結果
		QueryResponse queryResponse = this.httpSolrServer.query(query);
		return (User) queryResponse.getBeans(User.class);
	}
}

SpringSolrTest類:

package com.millery.spring_solr.test;

import org.apache.solr.client.solrj.SolrServerException;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.millery.spring_solr.pojo.User;

/**
 * 
 * @專案名稱:spring-solr
 * @類名稱:SpringSolrTest
 * @類描述:測試類
 * @建立人:millery
 * @建立時間:2015年11月5日 上午10:56:06 
 * @version:
 */
public class SpringSolrTest {

	private SpringSolr springSolr;

	@Before
	public void setUp() throws Exception {
		// 初始化Spring容器
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
				"applicationContext.xml", "applicationContext-solr.xml");
	
		//獲取物件
		this.springSolr = applicationContext.getBean(SpringSolr.class);
	}

	@Test
	public void test() throws SolrServerException {

		// 測試方法,輸出結果
		User user = springSolr.getUser((long) 1);
		System.out.println(user);
	}

}


執行程式碼結果:

org.apache.solr.client.solrj.SolrServerException: IOException occured when talking to server at: http://127.0.0.1:8983/millery

這裡拋異常時因為我本機上沒有安裝solr,無法連線solr,此時說明程式碼已經沒有問題,可以執行查詢操作了。

建工程時存在的小問題:

1、在建立工程時打包方式使用jarwar的選擇可能存在糾結,只想說不用糾結,選哪個都是一樣的。

2、在工程pom.xml配置檔案配置完成後,可能會出現下圖的報錯問題,此時就需要簡單的處理一下就可以了。

問題圖片:

 

解決方法就是右擊工程-->maven-->update project-->選擇當前的工程-->OK,這樣報錯的紅叉就消失了。

相關推薦

maven專案solrspring整合配置

solr和spring整合其實很簡單,只要注意匯入依賴的配置檔案即可。廢話不多說,上程式碼。 第一步:編寫maven專案的pom檔案,匯入依賴 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=

HibernateSpring整合配置

工具:myeclipse2014 Spring版本:3.1 Hibernate版本:3.3 文章介紹了hibernate和spring的配置,並將兩個框架整合起來,自己寫了測試程式碼測試是否整合成功。 配置hibernate和spring: 先配置hibe

maven 專案(五) spring整合springMVC開發統一接入API--實現test介面

為什麼要採用測試介面的方式:貼完程式碼我再來說; 1.貼張圖片 2.是測試介面地址的暴露方式: @Controller public class ApiTestController { @Value("${epeit.api.server}") private St

maven 專案(四) spring整合springMVC開發統一接入API(準備工作:第二部分)

介面虛擬碼流程(為啥是虛擬碼,這裡就是很一般的寫法,給人蔘考吧):/** @Controller:宣告是springMVC的響應元件 @RequestMapping(value = "/apicenter"):定義介面路徑 */ @Controller public class Api

Activiti環境配置專案搭建、與Spring整合、簡單示例

 概念 示例專案下載 環境搭建:     FBI WARNING 兩個視訊,螢幕錄影專家錄製,非病毒,本站願意承擔責任,下載完檔案請先核對MD5。     1.Eclipse配置Tomcat和部署WEB應用.exe(MD5:81c1dfb994ff5b2094ce

Maven專案中,關於Spring Boot 整合MyBatis時,Service層無法找到mapper介面的問題解決

mybatis: mapperlocations: classpath:com/xxx/xxx/dao/mapper/*.xml -----掃描對映檔案 config-location: classpath:mybatis-config.xml ------掃描配置檔案注意:路徑要以/ 分割3 M

spring+maven專案新增log4jslf4j日誌

1 Pom.xml新增依賴包 slf4j-log4j12這個包依賴了slf4j和log4j,所以使用slf4j+log4j的組合只要配置上面這一個依賴就夠了 <dependency> <groupId>org.slf4j</gro

IntelliJ IDEA中的Maven專案配置檔案釋出問題

積累,小白也有大神夢 在Idea中,如果建立Maven專案,因為它預設只能將/src/main/resources下的資原始檔釋出到伺服器中,所以我們在/src/main/java中寫的大量配置檔案是無法被髮布的,所以這樣就會出現,配置檔案載入失敗,無

RabbitMQ與spring整合,配置完整的生產者消費者

    RabbitMQ與AMQP協議詳解可以看看這個  http://www.cnblogs.com/frankyou/p/5283539.html 下面是rabbitMQ和spring整合的配置,我配置了二種ExCahange:  topicExchange和direc

idea中的spring boot maven專案的依賴pom.xml檔案不一致的解決辦法

今天用idea建立了一個spring boot專案,包含了spring security,在pom檔案和專案依賴都存在security依賴的情況下,對專案的訪問連結都會跳轉到輸入賬號密碼的驗證登入頁面,程式碼和跳轉如下:   為了驗證security的

RabbitMQ 安裝配置 Spring 整合

本文從安裝和配置 RabbitMQ 開始,準備好環境後,直接在 Spring 中整合,並且針對 Spring 中的常見用法提供了示例和講解。 安裝 一般開發環境可能用的都是 Windows,生產環境 Linux 用的比較多,這裡針對 Windows 和 Ubuntu 的安裝說明簡

SSH開發環境的配置:web.xml、Spring整合hibernateSpring整合Struts2

一、struts + hibernate + Spring整合開發包的匯入:從myeclipse整合開發工具中匯入或者從相應網站下載然後放在工程專案WEB-INF包下的lib包內即可。 二、本文主要說明開發包匯入後對配置檔案的配置。 三、相應配置檔案的配置:web.xml、

maven專案的JDK版本的版本配置或者指定JDK版本,最實用的修改settings.xmlpom.xml修改方法,可以解決eplise中的90%因為jdk相容的問題,

公司近期匯入了一個專案,新專案剛剛匯入就有很多錯誤,這也是java專案的一個通病,根本的原因還是java的jvm虛擬機器的問題,還有各種依賴包的問題,有些問題很明顯,有些問題非常不明顯 下面我就把一些應為jdk版本引起的問題記錄下, 錯誤1:Dynamic We

專案重構00 Java maven專案整合Scala混合開發

作為補充我找了個Scala專案,但這不是我重構的了,旨在說明問題,沒什麼區別。pom檔案,這個是我的專案的pom,其他依賴可以不用寫。github 專案地址 https://github.com/jxnu-liguobin/SpringBoot-Base-System注意Sc

Maven專案中redis(jedis)的配置使用

上一篇部落格簡單闡述java遠端連線redis遇到的問題,這一篇部落格詳細闡述遠端連線redis的相關配置。 要想在Java中連線Redis,並進行操作,由兩種方式,一種是spring data redis,它是由spring整合的,不支援叢集,一種是官方推薦

Maven 編譯打包(java+scala)專案 單獨的Java專案 的Pomassembly的配置

第一個是單獨的java專案的pom檔案的配置 <!-- 配置打包的方式 --> <build> <!--打包前的各種source定義--> <sourceDirectory>src/ma

Maven專案配置檔案找不到的解決辦法

問題出現 在構件Maven專案時候,我們已經將配置檔案放在包下,但是專案執行出錯,報錯找不到xxx.xml檔案. 先來分析一下普通Maven專案的專案檢視: 在src下有main和test兩個

spring專案與logstashElasticsearch整合

原創/朱季謙   最近在做一個將spring框架的專案日誌資料通過logstash傳到Elasticsearch的功能模組,也就是ELK日誌分析系統裡,經過一番搗鼓,終於把這個過程給走通了,根據自己的經驗,做了這篇總結文章,按照以下步驟可以搭建spring與logstash的集合,希望可以給各位玩l

springmvcjson整合配置方法

repl bin blank converter htm spring配置 tpm port 三方 配置方法一 1、導入第三方的jackson包,jackson-mapper-asl-1.9.7.jar和jackson-core-asl-1.9.7.jar。 2、spri

(十七)Hibnernate Spring 整合

blob ns-3 管理 comm wire support Coding jar包 jdbc 一、Hibnernate 和 Spring結合方案: 方案一: 框架各自使用自己的配置文件,Spring中加載Hibernate的配置文件。 方案二: 統一由Spri