通过上文
http://nlslzf.iteye.com/admin/blogs/239374
可以将compass集成到系统,但是他有一个问题,他要求所有的pojo都有一个字段来提供给他高亮,这个是我们可能难以处理的,最好的当然是将content转接给tostring方法,然后通过aspectj给每个pojo都注入一个方法getContent,并且该方法自动调用toString
代码如下
package com.yyhy.java.search.compass;
public interface Compassable {
public String getContent();
}
package com.yyhy.java.search.compass;
public class DefaultCompassableImpl implements Compassable {
@Override
public String getContent() {
System.out.println("error aop");
return "error aop";
}
}
package com.yyhy.java.search.compass;
import org.aspectj.lang.JoinPoint;
public aspect CompassAOP {
declare parents: com.yyhy.java.GenericCoder.* extends DefaultCompassableImpl;
declare parents: com.yyhy.java.Privilege.* extends DefaultCompassableImpl;
declare parents: com.yyhy.hx.zcdfk.* extends DefaultCompassableImpl;
declare parents: com.yyhy.hx.jgpmk.* extends DefaultCompassableImpl;
declare parents: com.yyhy.log.* extends DefaultCompassableImpl;
declare parents: com.yyhy.hx.zyqlk.* extends DefaultCompassableImpl;
public pointcut compass():execution(* *.getContent(..));
Object around():compass(){
return thisJoinPoint.getThis().toString();
}
}
重点在最后的aspect上,首先通过declare parents命令,将接口注入到匹配的pojo
然后通过around,拦截调用,将其转换到被切入对象的toString方法上。
分享到:
相关推荐
通过学习和实践Compass,开发者可以轻松地为Java应用程序添加强大的全文检索功能,提高用户体验,提升数据的可发现性。同时,Compass的灵活性和扩展性使其在各种场景下都能发挥重要作用,无论是小型项目还是大型企业...
Compass Annotation 是 Compass 提供的一种基于 Java 注解(Annotation)的映射方式,它可以将 Java 对象的属性与搜索引擎的文档字段关联起来。通过在 Java 类或其属性上添加特定的注解,Compass 可以自动处理对象到...
Compass通过元数据(Metadata)来定义要索引的数据对象。这些元数据通常与ORM的实体类对应,定义了哪些字段应该被索引,以及如何进行分词和分析。 5. **集成Hibernate** 如果你的应用使用Hibernate,Compass提供...
通过Compass,用户可以轻松地浏览和操作数据,查看索引,优化查询性能,以及进行数据导入导出等操作。 在安装MongoDB之前,你需要确保你的系统满足以下硬件和软件要求: 1. 操作系统:MongoDB支持多种操作系统,...
### Compass 使用详解 #### 一、Compass 概述 Compass 是一款开源的 Java 库,用于简化 Lucene 的使用。它通过提供类似于 Hibernate 的对象关系映射(ORM)功能,使得开发者能够更加轻松地将 Java 对象映射到 ...
通过Compass,你可以将对象-关系映射(ORM)与全文检索完美结合,使得数据库中的数据能够被快速高效地搜索。 **Compass的核心特性** 1. **对象-搜索映射(OSM)**:Compass允许你定义对象-搜索映射,将Java对象与...
【compass完整可用项目】是一个基于特定技术栈的软件开发项目,该项目的核心是Compass库,一个与Lucene紧密集成的全文搜索引擎工具。Compass提供了一种简单的方式来在Java应用程序中集成全文搜索功能,使得开发者...
在题目中提供的部分Java代码中,展示了一个名为`ProductInfo`的实体类,该类通过使用Compass注解实现了全文检索功能。 1. **实体类定义** ```java @Entity @Searchable public class ProductInfo implements ...
用户可以通过拖拽字段、选择条件等方式生成复杂的查询,极大地简化了查询操作。 3. 集合分析:工具提供统计分析功能,如查看集合大小、文档数量、索引信息等。这有助于数据库管理员监控数据库性能和优化资源分配。 ...
- **简化集成**:Compass通过抽象层简化了与Lucene的集成,减少了编码工作量。 - **高效查询**:利用Lucene的强大搜索功能,Compass提供了高效的全文检索能力。 - **事务管理**:支持事务处理,确保数据的一致性和...
【Compass原理深入学习笔记】 Compass是一款基于Apache Lucene的全文搜索引擎框架,它为...通过Compass,可以实现类似Hibernate对数据库的操作体验,但针对搜索引擎进行数据管理,提高了大规模文本数据的检索效率。
6. 在Struts2中使用:编写一个Action或Interceptor,处理搜索请求,通过Compass查询接口进行全文检索,并将结果返回给视图。 7. 整合测试:确保在添加、修改、删除数据时,Compass能够实时更新索引,同时搜索功能...
Compass 入门指南 Compass 是一个搜索引擎框架,旨在提供高效、可扩展的搜索解决方案。以下是 Compass 入门指南,涵盖了 Compass 的核心概念、配置文件、注解方式、核心 API、与 Spring 集成等方面。 Compass 的...
通过"compass实例_可运行"这个压缩包文件,你可以获得一个已经配置好的Compass示例项目。运行这个实例,你可以直观地看到Compass如何与数据库交互,如何创建和执行搜索,以及如何处理搜索结果。这对于初学者来说是一...
2. 查询构建器:对于不熟悉MongoDB查询语言(MQL)的用户,Compass提供了一个可视化的查询构建器,允许用户通过拖放操作创建复杂的查询。 3. 性能分析:Compass能够分析查询性能,帮助用户优化查询语句,找出可能...
COMPASS 教程Pdf COMPASS 是一款专业的油气田设计和生产软件,主要用于油气田的规划、设计和生产过程。下面是 COMPASS 的一些重要知识点: 1. COMPASS WELLPLAN FOR WINDOWS 功能简介:COMPASS 的核心功能包括 ...
Compass通过一系列的混合器和组件简化了CSS开发过程,使得开发者可以专注于设计而非繁琐的编码工作。 #### 三、Sass的核心特性 1. **变量**:允许开发者定义可复用的值,例如颜色、字体大小等,大大提高了代码的可...
通过XML、注解或编程方式,开发者可以指定哪些字段应该被索引,以及如何处理这些字段的数据类型。 4. **Gps接口** Compass引入了“Global Positioning System”(GPS)的概念,它是一种透明化的搜索接口,使得开发者...
1. 数据库浏览:通过Compass,用户可以清晰地看到数据库中的所有集合,以及每个集合包含的文档。集合就像关系型数据库中的表,而文档则是集合中的行,以JSON格式存储。 2. 文档查看与编辑:Compass允许你查看单个...
我们可以采用上述步骤,在项目启动时自动加载所有项目的索引信息,当用户输入关键字进行搜索时,通过Compass的查询接口返回匹配的结果。 具体实现上,可以先定义一个`ProjectService`接口及其实现类,利用Spring的...