编译java文件时的Spring注释
我今天开始学习spring,我有一个问题,关于编译带有注释的java文件时注释会发生什么?。 我问这个问题的原因是,当我们选择使用xml方法和注释方法时,我看到了根本的区别,我认为这就是spring的哲学。我的理解是spring说所有java类都可以是简单的pojo,所有与spring相关的配置都应该保持独立(比如xml文件) 在使用xml*开发spring应用程序的情况下,java文件不知道spring容器,并且编译到to.class中,没有任何与spring相关的依赖项 但是现在,当我们注释.java文件并编译该文件时,编译后的文件现在具有所有与spring相关的依赖项,并且不再是简单的pojo类编译java文件时的Spring注释,spring,spring-annotations,Spring,Spring Annotations,我今天开始学习spring,我有一个问题,关于编译带有注释的java文件时注释会发生什么?。 我问这个问题的原因是,当我们选择使用xml方法和注释方法时,我看到了根本的区别,我认为这就是spring的哲学。我的理解是spring说所有java类都可以是简单的pojo,所有与spring相关的配置都应该保持独立(比如xml文件) 在使用xml*开发spring应用程序的情况下,java文件不知道spring容器,并且编译到to.class中,没有任何与spring相关的依赖项 但是现在,当我们注释
这是正确的吗?我不确定这里是否遗漏了一些内容。注释可以被视为类或其元素(方法、字段、局部变量…)的元数据。放置注释时,不会实现任何行为。您只需提供有关元素的附加信息 这样,负责实例化其bean的Spring就可以收集信息(另请参见)并对其进行处理
总之,您的SpringBean仍然是POJO,并且与XML方式没有区别(…从这个角度来看),因为Spring从注释中获得了它从XML中获得的信息。注释可以被视为类或其元素(方法、字段、局部变量…)的元数据。放置注释时,不会实现任何行为。您只需提供有关元素的附加信息 这样,负责实例化其bean的Spring就可以收集信息(另请参见)并对其进行处理
总之,您的SpringBean仍然是POJO,并且与XML方式没有区别(…从这个角度来看),因为Spring从注释中获得了它从XML中获得的信息。我认为您是对的,您的问题是合理的,我也是这样认为的 不仅编译过的代码,而且对SpringJAR的依赖也让我感到困扰。使用此注释后,生成的jar取决于spring库 根据DDD在模型中存储bean是合理的,但spring是某种基础结构层,所以我不喜欢依赖关系 即使您要使用XML,它对于很少有人使用属性也是有用的。例如,
@Required
属性,该属性可用于验证已注入链接bean。因此,我决定使用构造函数依赖项注入来省略这个属性,请参见。我在代码中完全省略了对spring的依赖
你可能会在许多你想/强迫使用的注释中找到这样的思维钩。我认为你是对的,你的问题是有道理的,我也是这样想的 不仅编译过的代码,而且对SpringJAR的依赖也让我感到困扰。使用此注释后,生成的jar取决于spring库 根据DDD在模型中存储bean是合理的,但spring是某种基础结构层,所以我不喜欢依赖关系 即使您要使用XML,它对于很少有人使用属性也是有用的。例如,
@Required
属性,该属性可用于验证已注入链接bean。因此,我决定使用构造函数依赖项注入来省略这个属性,请参见。我在代码中完全省略了对spring的依赖
您可能可以为许多您想要/强制使用的注释找到这样的心智挂钩。您可以仅为您的配置类使用注释,而不将它们标记为实际的bean类。在这种情况下,如果您不使用spring,您就不会加载配置类。您可以只对配置类使用注释,而不将它们标记为实际的bean类。在这种情况下,如果不使用spring,就不会加载配置类。Java与XML配置是首选,在大多数情况下,它们是可互换的。关注点的分离是另一个问题,您应该通过与库无关的接口公开您的类,这样它们就不会被烘焙到特定的库中(只要合适)。Java与XML配置是首选问题,在大多数情况下它们是可互换的。关注点的分离是另一个问题,您应该通过库无关接口公开您的类,这样它们就不会被烘焙到特定的库中(只要合适)。