我一直在为Spring Batch使用Xml配置,并感觉它更简单和简洁。但是,现在,人们建议使用javaconfig over xml。我搜索了这个话题。SpringBatch - javaconfig vs xml
这个网站告诉我们,为什么javaconfig更好https://blog.codecentric.de/en/2013/06/spring-batch-2-2-javaconfig-part-1-a-comparison-to-xml/
选择javaconfig在XML的主要理由:
- 我们要做的框架中的一些基本的配置。人们将 依赖项添加到我们的框架库中,并根据其需要导入那些 配置。如果这些配置 是用XML编写的,那么他们很难将它们打开到 看看他们在做什么。在Java中没有问题。
- XML中没有导航功能。只要您的 没有太多XML文件,并且它们都位于您的工作空间 中,这可能就没有问题,因为那样您就可以利用Spring IDE支持。但通常不应将 框架库作为项目添加到 工作区。当使用基于Java的配置时,您可以跳转到框架配置类中。我将在以下博文中详细讨论 这个主题。
- 在一个框架中,您经常有要求 库的用户必须履行,以使所有的工作,例如需要一个数据源,一个 PlatformTransactionManager和一个线程池。从框架的角度来看,实施 并不重要,他们只需要 即可。在XML中,你必须为框架的 用户编写一些文档,告诉他们他们需要将这个和这个Spring bean以及这个名称添加到ApplicationContext中。在Java 中,您只需编写一个描述该合同的接口,并且使用该库的人员将实现该接口并将其作为 配置类添加到ApplicationContext中。这就是我用界面做的 。
这个网站告诉我们,为什么XML是更好的https://dzone.com/articles/consider-replacing-spring-xml
选择XML在javaconfig
- 配置是集中式的,它不是散落的不同组件之间的,所以你可以有一个主要理由在一个地方的豆和他们的配线很好的概述。
- 如果你需要分割你的文件,没问题,Spring让你这样做。然后在运行时通过内部标签或外部上下文文件聚合重新组装它们。
- 只有XML配置允许显式接线 - 而不是自动装配。有时候,后者对我的口味来说有点太神奇了。它明显的简单性隐藏了真实的复杂性:我们不仅需要在类型和名称自动装配之间切换,而且更重要的是,在所有符合条件的选择中选择相关bean的策略都会逃脱,但是更经验丰富的Spring开发人员。配置文件似乎使这更容易,但是相对较新并且为数不多的人所知。
- 最后但并非最不重要的是,XML与Java文件完全正交:在2之间没有耦合,因此该类可以在具有不同配置的多个上下文中使用。
我得出的结论是个XML仍然可以使用,如果要创建独立的批处理作业,如果你没有用Spring Batch的整合创建任何新的框架。
我错过了xml的缺点吗?