0

当我将它@Autowired用于我的 spring 应用程序时,没有设置器,我用我的测试类运行它,它工作正常。

但是,当我使用 ant 将类构建到 jar 中并调用此类(在 jar 中)时,它不起作用。当我使用 ant 编写 setter@Autowired并使用 ant 构建 jar 并调用它时,它正在工作。

谁能向我解释一下有什么区别?

注意:-当我使用没有 ant 的 Eclipse 工具构建 jar 时,它在没有 setter 方法的情况下工作。

所以请向我解释为什么这仅适用于 ant 构建的 jar,以及为什么 ant 构建的类也只需要@Autowired使用 setter 方法?

4

1 回答 1

1

我的猜测是您的 jar 文件中没有包含一些 XML 资源。要使带注释的自动布线工作,您需要指定您的 spring XML <context:annotation-conig />。确保 ant jar 任务包含与 eclipse 项目源目录相同的目录。

具有两个源目录的示例 ant jar 任务:src/main/java包含您的 .java 文件并src/main/resources包含 XML 和其他配置文件:

<jar ...>
  <fileset dir="src/main">
    <include name="java" />
    <include name="resources" />
  </fileset>
</jar>
于 2012-07-14T22:50:08.473 回答