solr和spring整合其实很简单,只要注意导入依赖的配置文件即可。废话不多说,上代码。

第一步:编写maven项目的pom文件,导入依赖

[html] view plain copy

1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3. <modelVersion>4.0.0</modelVersion>
4. <groupId>com.millery.spring_solr</groupId>
5. <artifactId>spring-solr</artifactId>
6. <version>0.0.1-SNAPSHOT</version>
7. <packaging>war</packaging>
8.   
9.   
10. <!-- 添加依赖 -->
11. <dependencies>
12.   
13. <!-- Spring依赖 -->
14. <dependency>
15. <groupId>org.springframework</groupId>
16. <artifactId>spring-context</artifactId>
17. <version>4.1.3.RELEASE</version>
18. </dependency>
19. <dependency>
20. <groupId>org.springframework</groupId>
21. <artifactId>spring-beans</artifactId>
22. <version>4.1.3.RELEASE</version>
23. </dependency>
24. <dependency>
25. <groupId>org.springframework</groupId>
26. <artifactId>spring-jdbc</artifactId>
27. <version>4.1.3.RELEASE</version>
28. </dependency>
29. <dependency>
30. <groupId>org.springframework</groupId>
31. <artifactId>spring-aspects</artifactId>
32. <version>4.1.3.RELEASE</version>
33. </dependency>
34.   
35. <!--solr客户端solrj的依赖 -->
36. <dependency>
37. <groupId>org.apache.solr</groupId>
38. <artifactId>solr-solrj</artifactId>
39. <version>4.10.1</version>
40. </dependency>
41.           
42. <!-- junit测试 -->
43. <dependency>
44. <groupId>junit</groupId>
45. <artifactId>junit</artifactId>
46. <version>4.10</version>
47. <scope>test</scope>
48. </dependency>
49.   
50. </dependencies>
51. </project>


第二步:编写applicationContext-solr.xml和solr.properties配置文件

applicationContext-solr.xml配置文件的内容:

[html] view plain copy

1. <?xml version="1.0" encoding="UTF-8"?>
2. <beans xmlns="http://www.springframework.org/schema/beans"
3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
4. xmlns:context="http://www.springframework.org/schema/context"
5. xmlns:mvc="http://www.springframework.org/schema/mvc"
6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
7.         http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd  
8. >
9.       
10. <!--定义solr的server-->
11. <bean id="httpSolrServer" class="org.apache.solr.client.solrj.impl.HttpSolrServer">
12. <constructor-arg index="0" value="${solr.Url}"/>
13. <!-- 设置响应解析器 -->
14. <property name="parser">
15. <bean class="org.apache.solr.client.solrj.impl.XMLResponseParser"/>
16. </property>
17. <!-- 设置重试次数-->
18. <property name="maxRetries" value="${solr.maxRetries}"/>
19. <!-- 建立连接的最长时间 -->
20. <property name="connectionTimeout" value="${solr.connectionTimeout}"/>
21. </bean>
22.   
23.   
24. </beans>


solr.properties配置文件的内容:

[html] view plain copy

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


第三步:编写applicationContext.xml配置文件

[html] view plain copy

1. <?xml version="1.0" encoding="UTF-8"?>
2. <beans xmlns="http://www.springframework.org/schema/beans"
3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
4. xmlns:context="http://www.springframework.org/schema/context"
5. xmlns:mvc="http://www.springframework.org/schema/mvc"
6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
7.         http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd  
8. >
9.   
10. <!--配置service的包扫描,自动注入Service -->
11. <context:component-scan base-package="com.millery" />
12.   
13. <!-- 使用spring自带的占位符替换功能 -->
14. <bean
15. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
16. <!-- 允许JVM参数覆盖 -->
17. <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
18. <!-- 忽略没有找到的资源文件 -->
19. <property name="ignoreResourceNotFound" value="true" />
20. <!-- 配置资源文件 -->
21. <property name="locations">
22. <list>
23. <value>classpath:solr.properties</value>
24. </list>
25. </property>
26. <a target=_blank href=""><span style="color: rgb(0, 0, 255);"></span></a><pre name="code" class="html"><span style="white-space:pre">   </span></bean>

[html] view plain copy

  1. </beans>

第四步:写测试代码

User实体类:


[html] view plain copy

1. package com.millery.spring_solr.pojo;  
2.   
3. /**  
4.  *   
5.  * @项目名称:spring-solr  
6.  * @类名称:User  
7.  * @类描述:用户实体类  
8.  * @创建人:millery  
9.  * @创建时间:2015年11月5日 上午10:42:43   
10.  * @version:  
11.  */  
12. public class User {  
13.   
14.     private Long id;// 用户编号  
15.     private String username;// 用户名  
16.     private String loginPwd;// 用户登录密码  
17.     private String email;// 用户邮箱  
18.   
19.     public Long getId() {  
20.         return id;  
21.     }  
22.   
23.     public void setId(Long id) {  
24. this.id = id;  
25.     }  
26.   
27.     public String getUsername() {  
28.         return username;  
29.     }  
30.   
31.     public void setUsername(String username) {  
32. this.username = username;  
33.     }  
34.   
35.     public String getLoginPwd() {  
36.         return loginPwd;  
37.     }  
38.   
39.     public void setLoginPwd(String loginPwd) {  
40. this.loginPwd = loginPwd;  
41.     }  
42.   
43.     public String getEmail() {  
44.         return email;  
45.     }  
46.   
47.     public void setEmail(String email) {  
48. this.email = email;  
49.     }  
50.   
51.     @Override  
52.     public String toString() {  
53. id=" + id + ", username=" + username + ", loginPwd="  
54. email=" + email + "]";  
55.     }  
56. }

SpringSolr类:


[html] view plain copy

1. </pre></p><p>SpringSolr<span style="font-family:宋体;">类:</span></p><p><pre name="code" class="html">package com.millery.spring_solr.test;  
2.   
3. import org.apache.solr.client.solrj.SolrQuery;  
4. import org.apache.solr.client.solrj.SolrServerException;  
5. import org.apache.solr.client.solrj.impl.HttpSolrServer;  
6. import org.apache.solr.client.solrj.response.QueryResponse;  
7. import org.springframework.beans.factory.annotation.Autowired;  
8. import org.springframework.stereotype.Component;  
9.   
10. import com.millery.spring_solr.pojo.User;  
11.   
12. /**  
13.  *   
14.  * @项目名称:spring-solr  
15.  * @类名称:SpringSolrTest  
16.  * @类描述:测试类  
17.  * @创建人:millery   
18.  * @创建时间:2015年11月5日 上午10:48:57   
19.  * @version:  
20.  */  
21. @Component  
22. public class SpringSolr {  
23.   
24.     @Autowired  
25.     private HttpSolrServer httpSolrServer;  
26.   
27.     public User getUser(Long id) throws SolrServerException {  
28.   
29.         //创建查询条件  
30. query = new
31.         query.setQuery("id:" + id);  
32.           
33.         //查询并返回结果  
34. queryResponse = this.httpSolrServer.query(query);  
35.         return (User) queryResponse.getBeans(User.class);  
36.     }  
37. }


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、在建立工程时打包方式使用jar和war的选择可能存在纠结,只想说不用纠结,选哪个都是一样的。

2、在工程pom.xml配置文件配置完成后,可能会出现下图的报错问题,此时就需要简单的处理一下就可以了。

问题图片:

 

sping maven plug和apache maven plug区别_xml

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