【问题标题】:Why Java Config is favorable in spring boot when compared to XML config?与 XML 配置相比,为什么 Java Config 在 Spring Boot 中更受欢迎?
【发布时间】:2018-02-07 13:41:22
【问题描述】:

我是弹簧靴的新手。我正在使用 spring-boot 构建一个基于 rest 的应用程序,并且正在使用 spring-security 设置安全性。我的理解是我可以使用 xml 配置或 Java 配置来设置 spring-security。

但是,我在 spring-boot 文档中找到了以下内容。 https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-configuration-classes.html

它赞成使用 Java Config 而不是 XML config。 Java 配置中的更改需要重新编译。然而,这让我想到为什么文档偏爱 Java Config。

  1. 配置类 Spring Boot 支持基于 Java 的配置。虽然可以使用 XML 调用 SpringApplication.run() 来源,我们通常建议您的主要来源是 @配置类。通常是定义main方法的类 也是作为主要@Configuration 的良好候选者。

网上已经发布了很多Spring配置示例 使用 XML 配置。始终尝试使用等效的 如果可能,基于 Java 的配置。搜索启用* 注释可以是一个很好的起点。

15.1 导入额外的配置类 你不需要把所有的@Configuration 放到一个类中。 @Import 注释 可用于导入其他配置类。或者, 您可以使用@ComponentScan 自动拾取所有 Spring 组件,包括 @Configuration 类。

15.2 导入 XML 配置 如果您绝对必须使用基于 XML 的配置,我们建议您仍然从 @Configuration 开始 班级。然后,您可以使用附加的 @ImportResource 注释来 加载 XML 配置文件。

【问题讨论】:

  • xml 配置是个好方法。为什么?因为你不需要重新编译java代码。只需更改配置并重新启动服务器。 @Configuration 是代码里面的配置。如果你改变了一些值,你需要重新编译->部署->启动服务器。
  • @Sh4m 我同意你的看法。我得到这个问题的唯一原因是因为当我在网上查看 spring-boot 的示例时,我总是看到配置是在 java 类而不是 xml 中管理的。因此,我开始这样思考,并想确定什么是正确的。
  • XML 配置没有问题。它的受欢迎程度最近有所下降,取而代之的是 Java Config 和 Annotations,但这通常只是个人喜好。
  • 除非您的 XML 配置在您的应用程序外部(恕我直言,这将是一件坏事),否则您仍然需要重建您的工件并对其进行测试等。使用 java 或 xml 不会改变这一点。此外,通过基于 Java 的配置,您可以使用 java 为您配置应用程序提供的所有好东西(类型安全、if/else、开关等),更不用说新的条件 bean 支持,它在 Java 中比在 xml 中要好得多.

标签: java xml spring spring-boot spring-security


【解决方案1】:

有一些优点

  1. Java 是类型安全的。如果您正在配置正确的 bean 类限定符,编译器将报告问题。

  2. 基于配置的 XML 可以迅速变大。 [是的,我们可以拆分和导入,但仍然

  3. 搜索更简单,重构会很幸福。查找 bean 定义会容易得多。

还有人喜欢XML配置并继续做下去。

更多信息可以参考Java configuration advantagesSome more reasons

【讨论】:

    猜你喜欢
    • 2019-06-11
    • 2020-10-25
    • 2016-01-20
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 2018-08-31
    相关资源
    最近更新 更多