1

我今天开始学习spring,我有一个问题,当编译带有注释的java文件时,注释会发生什么?我问这个的原因是因为当我们选择使用 xml 方法和注释方法时我看到的根本区别,我认为是 spring 的哲学。我理解的方式是spring说你所有的java类都可以是简单的pojo,并且所有与spring相关的配置都应该保持独立(如xml文件。)

如果使用 xml *.java 文件开发 spring 应用程序,则不知道 spring 容器,并且被编译到 .class 中,没有任何与 spring 相关的依赖项。

但是现在当我们注释 .java 文件并编译文件时,编译后的文件现在已经将所有与 spring 相关的依赖项都硬烘焙到其中,并且不再是简单的 pojo 类。

这个对吗 ?我不确定我是否在这里遗漏了一些东西。

4

3 回答 3

1

注释可以被视为类或其元素(方法、字段、局部变量...)的元数据。当您放置注释时,您不会实现任何行为。您只需提供有关元素的其他信息。

这样,负责实例化其 bean 的 Spring 可以通过反射收集信息(另见此站点)并处理它。

总而言之,您的 Spring bean 仍然是 POJO,并且与 XML 方式没有区别(...从那个角度来看),因为 Spring 从注释中获取了它从 XML 中获取的信息。

于 2013-08-20T23:05:38.530 回答
0

您只能对配置类使用注解,而无需将它们标记为实际的 bean 类。在这种情况下,如果您不使用 spring,您就不会加载配置类。

于 2013-08-21T07:56:58.007 回答
0

我认为你是对的,你的问题是有道理的,我也是这么想的。

不仅编译代码而且对 spring jar 的依赖也困扰着我。使用此注释后,生成的 jar 将依赖于 spring 库。

根据 DDD 将 bean 存储在模型中是合理的,但是 spring 是某种基础设施层,所以我不喜欢这种依赖关系。

即使您将使用 XML,它对于很少使用的属性也是有用的。例如@Required,用于验证链接 bean 是否被注入的属性。所以,我决定使用构造函数依赖注入来省略这个属性,请参阅我的文章。我在代码中完全省略了对 spring 的依赖。

您可能会为您想要/强制使用的许多注释找到这样的思维钩子。

于 2013-08-21T07:09:26.973 回答