热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

maven项目下solr和spring的整合配置

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

前言:

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

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

[html] view plain copy

xsi:schemaLocation=" http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> ;  

4.0.0  

com.millery.spring_solr  

spring-solr  

0.0.1-SNAPSHOT  

war  

  

  

  

  

org.springframework  

spring-context  

4.1.3.RELEASE  

  

  

org.springframework  

spring-beans  

4.1.3.RELEASE  

  

  

org.springframework  

spring-jdbc  

4.1.3.RELEASE  

  

  

org.springframework  

spring-aspects  

4.1.3.RELEASE  

  

  

  

org.apache.solr  

solr-solrj  

4.10.1  

  

  

  

junit  

junit  

4.10  

test  

  

  

  

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

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

[html] view plain copy

  

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.properties配置文件的内容:

[html] view plain copy

solr.Url= http://127.0.0.1:8983/millery

solr.maxRetries=1  

solr.cOnnectionTimeout=500  

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

[html] view plain copy

  

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"> ;  

  

  

  

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  

  

  

  

  

  

  

  

classpath:solr.properties  

  

  

     

[html] view plain copy

  

第四步:写测试代码

User实体类:

[html] view plain copy

br/>package com.millery.spring_solr.pojo;  

/**  

*   

* @项目名称:spring-solr  

@类名称:User  

@类描述:用户实体类  

br/> * @创建人:millery  

@创建时间:2015年11月5日 上午10:42:43   

@version:  

br/> */  

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

[html] view plain copy

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  

br/>

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  

@类描述:测试类  

br/> * @创建人:millery   

@创建时间:2015年11月5日 上午10:48:57   

@version:  

br/> */  

@Component  

public class SpringSolr {  

br/>  

@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;

/*

public class SpringSolrTest {

private SpringSolr springSolr;

br/>@Before

public void setUp() throws Exception {

// 初始化Spring容器

ApplicationContext applicatiOnContext= new ClassPathXmlApplicationContext(

"applicationContext.xml", "applicationContext-solr.xml");

//获取对象

this.springSolr = applicationContext.getBean(SpringSolr.class);

br/>}

@Test

public void test() throws SolrServerException {

// 测试方法,输出结果

User user = springSolr.getUser((long) 1);

System.out.println(user);

}

}

来自CODE的代码片

SpringSolrTest.java

运行代码结果:

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配置文件配置完成后,可能会出现下图的报错问题,此时就需要简单的处理一下就可以了。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 我们


推荐阅读
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
author-avatar
ALL_TTDD
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有