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

maven项目下solr和spring如何整合配置

这篇文章给大家分享的是有关maven项目下solr和spring如何整合配置的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。第一

这篇文章给大家分享的是有关maven项目下solr和spring如何整合配置的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

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

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

 
; 
  
  
  
   
  
   
    
   
   
   
   
   
  
 
 

solr.properties配置文件的内容:

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

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

 
; 
 
  
  
 
  
  
   
   
   
   
   
   
    
    classpath:solr.properties 
    
   

 

第四步:写测试代码

User实体类:

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

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

SpringSolrTest.java

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);
}
}

运行代码结果:

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

感谢各位的阅读!关于“maven项目下solr和spring如何整合配置”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


推荐阅读
  • 本文探讨了利用Java实现WebSocket实时消息推送技术的方法。与传统的轮询、长连接或短连接等方案相比,WebSocket提供了一种更为高效和低延迟的双向通信机制。通过建立持久连接,服务器能够主动向客户端推送数据,从而实现真正的实时消息传递。此外,本文还介绍了WebSocket在实际应用中的优势和应用场景,并提供了详细的实现步骤和技术细节。 ... [详细]
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • MicrosoftDeploymentToolkit2010部署培训实验手册V1.0目录实验环境说明3实验环境虚拟机使用信息3注意:4实验手册正文说 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • Spring框架中的面向切面编程(AOP)技术详解
    面向切面编程(AOP)是Spring框架中的关键技术之一,它通过将横切关注点从业务逻辑中分离出来,实现了代码的模块化和重用。AOP的核心思想是将程序运行过程中需要多次处理的功能(如日志记录、事务管理等)封装成独立的模块,即切面,并在特定的连接点(如方法调用)动态地应用这些切面。这种方式不仅提高了代码的可维护性和可读性,还简化了业务逻辑的实现。Spring AOP利用代理机制,在不修改原有代码的基础上,实现了对目标对象的增强。 ... [详细]
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
  • 在尝试对从复杂 XSD 生成的类进行序列化时,遇到了 `NullReferenceException` 错误。尽管已经花费了数小时进行调试和搜索相关资料,但仍然无法找到问题的根源。希望社区能够提供一些指导和建议,帮助解决这一难题。 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 在过去,我曾使用过自建MySQL服务器中的MyISAM和InnoDB存储引擎(也曾尝试过Memory引擎)。今年初,我开始转向阿里云的关系型数据库服务,并深入研究了其高效的压缩存储引擎TokuDB。TokuDB在数据压缩和处理大规模数据集方面表现出色,显著提升了存储效率和查询性能。通过实际应用,我发现TokuDB不仅能够有效减少存储成本,还能显著提高数据处理速度,特别适用于高并发和大数据量的场景。 ... [详细]
author-avatar
宋十七
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有