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类:



运行代码结果:

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项目下solr和spring的整合配置_第1张图片

解决方法就是右击工程-->maven-->update project-->选择当前的工程-->OK,这样报错的红叉就消失了。


你可能感兴趣的:(solr和spring的整合,spring和solr的整合)