Spring自定义注释 - 如何使其成为库的一部分?

时间:2011-11-05 22:36:04

标签: spring spring-mvc annotations

我已经创建了一个自定义注释(在Spring 3.05中),效果很好。我想把这个代码带到一个库的一部分,打包在一个jar文件中,所以我不必在我写的每个web应用程序中包含我的自定义注释代码。

但是,我无法让Spring对注释采取行动。我的库jar在我的web应用程序的类路径中,我尝试在applicationContext.xml中搜索它:

<context:component-scan base-package="my.annotation.pkg" />

使用我的自定义注释注释的字段仍为空。

理想情况下,我希望能够以最少的工作和配置工作,但到目前为止,我还没有取得任何成功。

当我的自定义注释是外部库的一部分时,我错过了哪些部分的Spring接线?

更新

以下是我“解决”它的方式......只需要仔细阅读一下。在每个上下文文件(即applicationContext.xml,dispatch-servlet.xml)中,我添加了一行:

<bean class="my.annotation.CustomInjector" />

...我的CustomInjector implements BeanPostProcessor。我根据此博客文章中的代码建立了此基础:Implementing Seam style @Logger injection with Spring

作者说我需要做的就是我做的事情,因为我没有彻底阅读,所以我很难受。但是,为什么要添加所需的bean定义呢?也许Spring注释的配置相似 - 我只是不明白为什么在类路径上使用jar文件是不够的。

1 个答案:

答案 0 :(得分:1)

您的自定义注释是否使用@Component注释进行了注释?来自Spring reference manual

  

默认情况下,使用@ Component,@ Repository,@ Service,@ Controller注释的类或自身使用@Component注释的自定义注释是唯一检测到的候选组件。

或者,您可以将自定义include-filter添加到XML配置中的component-scan元素。