库中的Spring注释配置

时间:2016-06-24 03:29:53

标签: java spring spring-annotations

我已经制作了几个使用纯注释Spring配置的应用程序。现在,我想尝试建立一个库。

  • 库应该使用纯注释Spring配置。
  • 使用该库的项目应该能够使用该库而无需任何特殊的Spring配置。实际上,我希望库可以与Spring和非Spring项目互换使用。应该在库jar中处理所有Spring配置。
  • 该库应该可以在非Web应用程序的项目中使用。
  • 使用该库的应用程序应该能够使用new关键字在库中实例化公共类,并且可以解析它们的@Autowired依赖项。

我不确定如何做到这一点。需要某种方式来建立应用程序上下文,这似乎是在插入点完成的。由于库没有插入点,我不知所措。

这只是未完成的事情吗? Spring依赖注入似乎是一个非常有用的工具,如果我不能用它来构建库,那将是一种耻辱。

1 个答案:

答案 0 :(得分:3)

根据您的编写,您的库本质上是一组自定义组件,这些组件内部一致,并通过META-INF类路径或Maven依赖关系定义为其他库定义了显式依赖关系。

注释没有魔力。注释只是由注释处理器处理的标记,因此如果没有执行自动连接的框架注释处理器,注释只不过是注释。 JAXB或JPA注释也是如此。

您的非Spring应用程序需要实例化一个初始容器,然后根据IoC原则启动绑定过程。你的一个图书馆可以是这样一个' boot'启动此过程的库,其代码可以从其他库jar中读取bean配置或扫描组件,并自动连接来自不同库的组件。

简而言之,您需要某种形式的启动,这可能是一个额外的启动'图书馆本身。您可以使此引导库对非Spring应用程序最小且几乎透明,并提供某种形式的组件查找,但是以完全透明的方式执行它将非常困难。