Java 库中的Spring注释配置

Java 库中的Spring注释配置,java,spring,spring-annotations,Java,Spring,Spring Annotations,我制作了几个使用纯注释Spring配置的应用程序。现在,我想尝试建立一个图书馆 库应该使用纯注释Spring配置 使用库的项目应该能够在没有任何特殊Spring配置的情况下使用库。事实上,我希望该库可以与Spring和非Spring项目互换使用。所有Spring配置都应该在库jar中处理 该库应该在非web应用程序的项目中可用 使用库的应用程序应该能够使用new关键字实例化库中的公共类,并解析它们的@Autowired依赖关系 我不知道人们会怎么做。需要某种方法来建立应用程序上下文,这似乎是

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

  • 库应该使用纯注释Spring配置
  • 使用库的项目应该能够在没有任何特殊Spring配置的情况下使用库。事实上,我希望该库可以与Spring和非Spring项目互换使用。所有Spring配置都应该在库jar中处理
  • 该库应该在非web应用程序的项目中可用
  • 使用库的应用程序应该能够使用
    new
    关键字实例化库中的公共类,并解析它们的
    @Autowired
    依赖关系
我不知道人们会怎么做。需要某种方法来建立应用程序上下文,这似乎是在插入点完成的。由于库没有插入点,我不知所措


这只是一件没有完成的事情吗?Spring依赖项注入似乎是一个非常有用的工具,如果我不能使用它来构建库,那将是一个遗憾

从您编写的内容来看,您的库本质上是一组自定义组件,这些组件内部一致,并且通过META-INF类路径或Maven依赖项定义定义了与其他库的显式依赖项

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

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


简而言之,您将需要某种形式的引导,它本身可以是一个额外的“引导”库。您可以使这个启动库最小化,对非Spring应用程序几乎是透明的,并提供某种形式的组件查找,但要以完全透明的方式完成这项工作将非常困难。

从您编写的内容来看,您的库本质上是一组自定义组件,这些组件内部一致,并且通过META-INF类路径或Maven依赖项定义对其他库定义了显式依赖项

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

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


简而言之,您将需要某种形式的引导,它本身可以是一个额外的“引导”库。您可以使这个启动库最小化,对非Spring应用程序几乎是透明的,并提供某种形式的组件查找,但要以完全透明的方式完成这项工作将非常困难。

我意识到我提出了一个非常广泛的问题,答案必然也同样广泛。我希望你不介意一些后续问题。听起来你是在建议我创建一个facade类来处理Spring上下文,然后提供公共类。是这样吗?我将无法使用
new
关键字,在这种情况下,对吗?我可能只是误会了。听起来这可能比它的价值更麻烦。简单的Java
new
不会实例化IoC容器,因此bean不是托管bean。看看这个:我意识到我问了一个非常宽泛的问题,答案必然也同样宽泛。我希望你不介意一些后续问题。听起来你是在建议我创建一个facade类来处理Spring上下文,然后提供公共类。是这样吗?我将无法使用
new
关键字,在这种情况下,对吗?我可能只是误会了。听起来这可能比它的价值更麻烦。简单的Java
new
不会实例化IoC容器,因此bean不是托管bean。看看这个: