【发布时间】: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。
- 配置类 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