SpringBatch-javaconfig与xml
我已经使用SpringBatch的Xml配置有一段时间了,我觉得它更简单、简洁。然而,现在,人们建议使用javaconfig而不是xml。我用谷歌搜索了这个话题 这个网站告诉我们为什么javaconfig更好 选择javaconfig而不是xml的主要原因:SpringBatch-javaconfig与xml,java,spring-batch,spring-java-config,xml-configuration,Java,Spring Batch,Spring Java Config,Xml Configuration,我已经使用SpringBatch的Xml配置有一段时间了,我觉得它更简单、简洁。然而,现在,人们建议使用javaconfig而不是xml。我用谷歌搜索了这个话题 这个网站告诉我们为什么javaconfig更好 选择javaconfig而不是xml的主要原因: 我们希望在框架中进行一些基本配置。人们补充说 依赖于我们的框架库并导入这些 根据需要进行配置。如果这些配置 如果是用XML编写的,他们将很难将它们打开 看看他们在干什么。Java没有问题 XML中没有可导航性。只要你愿意,那可能没问题 不要
我遗漏了xmls的任何缺点吗?让我补充一些关于这个主题的额外想法 使用javaconfig时,我真正喜欢的是动态创建作业的能力。例如,您可以有一个带有文件名的inputparameter,然后创建一个作业,通过为每个接收到的文件名创建一个步骤,并行地读取和处理这些文件。(使用MultiResourceItemReader将按顺序执行此操作)。此外,根据inputparameter,还可以以不同的方式定义作业流 关于您选择xml而不是javaconfig的原因,我的想法如下: 第一点:在我看来,这并不重要。您可以拥有自己的配置类,也可以定义自己的包。您甚至可以将它们放在自己的模块中。这只是如何组织代码的问题 第二点:同样,这也不算数。您可以将配置拆分为任意多个类。您可以使用@Import和@ContextScan注释将所需内容集成到上下文中 第3点:如果您按类而不是按接口进行自动布线,那么自动布线也可以非常明确。此外,还可以直接调用用@Bean注释的方法。例如:
@Configuration
public MyBeanFactory {
@Bean
public MyBeanInterface bean1() {
return ...;
}
@Bean
public MyBeanInterface bean2() {
return ...;
}
}
@Component
public MyBeanuser {
@Autowired
private MyBeanFactory beanFactory;
@PostConstruct
public void afterPropertiesSet() {
// this will actually set the bean that was created an registered in the
// spring context and not simply call the the method and create a new
// instance. So this wiring is very explicitly
setProperty1(beanFactory.bean1());
setProperty2(beanFactory.bean2());
}
最后,我想这也是一个品味的问题。我在SpringBatch环境中使用xml配置已经超过5年了。两年前,我们完全改用javaconfig而不是xml。老实说,我还没有找到一个我想重新使用xml的理由。然而,这是我的“品味问题”