`
nlslzf
  • 浏览: 1044742 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

compass通过aspectj增加content字段

阅读更多
通过上文
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全文检索系列之一:Compass入门

    通过学习和实践Compass,开发者可以轻松地为Java应用程序添加强大的全文检索功能,提高用户体验,提升数据的可发现性。同时,Compass的灵活性和扩展性使其在各种场景下都能发挥重要作用,无论是小型项目还是大型企业...

    compass annotation关联关系

    Compass Annotation 是 Compass 提供的一种基于 Java 注解(Annotation)的映射方式,它可以将 Java 对象的属性与搜索引擎的文档字段关联起来。通过在 Java 类或其属性上添加特定的注解,Compass 可以自动处理对象到...

    compass搜索引擎技术

    Compass通过元数据(Metadata)来定义要索引的数据对象。这些元数据通常与ORM的实体类对应,定义了哪些字段应该被索引,以及如何进行分词和分析。 5. **集成Hibernate** 如果你的应用使用Hibernate,Compass提供...

    compass_使用详解.pdf compass_教程 compass_试用案例

    ### Compass 使用详解 #### 一、Compass 概述 Compass 是一款开源的 Java 库,用于简化 Lucene 的使用。它通过提供类似于 Hibernate 的对象关系映射(ORM)功能,使得开发者能够更加轻松地将 Java 对象映射到 ...

    Compass 的java代码

    通过Compass,你可以将对象-关系映射(ORM)与全文检索完美结合,使得数据库中的数据能够被快速高效地搜索。 **Compass的核心特性** 1. **对象-搜索映射(OSM)**:Compass允许你定义对象-搜索映射,将Java对象与...

    compass完整可用项目

    【compass完整可用项目】是一个基于特定技术栈的软件开发项目,该项目的核心是Compass库,一个与Lucene紧密集成的全文搜索引擎工具。Compass提供了一种简单的方式来在Java应用程序中集成全文搜索功能,使得开发者...

    java搜索 compass资料

    在题目中提供的部分Java代码中,展示了一个名为`ProductInfo`的实体类,该类通过使用Compass注解实现了全文检索功能。 1. **实体类定义** ```java @Entity @Searchable public class ProductInfo implements ...

    Compass技术文档

    - **简化集成**:Compass通过抽象层简化了与Lucene的集成,减少了编码工作量。 - **高效查询**:利用Lucene的强大搜索功能,Compass提供了高效的全文检索能力。 - **事务管理**:支持事务处理,确保数据的一致性和...

    Compass原理深入学习笔记

    【Compass原理深入学习笔记】 Compass是一款基于Apache Lucene的全文搜索引擎框架,它为...通过Compass,可以实现类似Hibernate对数据库的操作体验,但针对搜索引擎进行数据管理,提高了大规模文本数据的检索效率。

    mongodb-compass-1.17.0-win32-x64 MongoDB可视化工具Compass

    用户可以通过拖拽字段、选择条件等方式生成复杂的查询,极大地简化了查询操作。 3. 集合分析:工具提供统计分析功能,如查看集合大小、文档数量、索引信息等。这有助于数据库管理员监控数据库性能和优化资源分配。 ...

    Compass与Struts2SpringHibernate的整合示例

    6. 在Struts2中使用:编写一个Action或Interceptor,处理搜索请求,通过Compass查询接口进行全文检索,并将结果返回给视图。 7. 整合测试:确保在添加、修改、删除数据时,Compass能够实时更新索引,同时搜索功能...

    compass 全文搜索

    通过"compass实例_可运行"这个压缩包文件,你可以获得一个已经配置好的Compass示例项目。运行这个实例,你可以直观地看到Compass如何与数据库交互,如何创建和执行搜索,以及如何处理搜索结果。这对于初学者来说是一...

    compass教程.pdf

    COMPASS 教程Pdf COMPASS 是一款专业的油气田设计和生产软件,主要用于油气田的规划、设计和生产过程。下面是 COMPASS 的一些重要知识点: 1. COMPASS WELLPLAN FOR WINDOWS 功能简介:COMPASS 的核心功能包括 ...

    mongodb compass1.15.1官网版 免安装直接使用

    2. 查询构建器:对于不熟悉MongoDB查询语言(MQL)的用户,Compass提供了一个可视化的查询构建器,允许用户通过拖放操作创建复杂的查询。 3. 性能分析:Compass能够分析查询性能,帮助用户优化查询语句,找出可能...

    Sass和Compass 实战

    Compass通过一系列的混合器和组件简化了CSS开发过程,使得开发者可以专注于设计而非繁琐的编码工作。 #### 三、Sass的核心特性 1. **变量**:允许开发者定义可复用的值,例如颜色、字体大小等,大大提高了代码的可...

    compass对象搜索引擎

    通过XML、注解或编程方式,开发者可以指定哪些字段应该被索引,以及如何处理这些字段的数据类型。 4. **Gps接口** Compass引入了“Global Positioning System”(GPS)的概念,它是一种透明化的搜索接口,使得开发者...

    mongodb compass

    1. 数据库浏览:通过Compass,用户可以清晰地看到数据库中的所有集合,以及每个集合包含的文档。集合就像关系型数据库中的表,而文档则是集合中的行,以JSON格式存储。 2. 文档查看与编辑:Compass允许你查看单个...

    基于Compass2.2与Spring 结合建立索引的实例

    我们可以采用上述步骤,在项目启动时自动加载所有项目的索引信息,当用户输入关键字进行搜索时,通过Compass的查询接口返回匹配的结果。 具体实现上,可以先定义一个`ProjectService`接口及其实现类,利用Spring的...

    使用compass+lucene实现简单的全文检索功能

    4. **索引映射**:在 Compass 中,需要定义索引字段与对象属性之间的映射关系,以便正确地将对象数据转化为 Lucene 索引。这可以通过注解或者 XML 配置完成。 5. **查询与搜索**:完成索引后,可以使用 Compass ...

Global site tag (gtag.js) - Google Analytics