gpt4 book ai didi

java - 为什么 Spring Boot Application 类需要有 @Configuration 注解?

转载 作者:IT老高 更新时间:2023-10-28 13:44:21 26 4
gpt4 key购买 nike

我正在学习 Spring 框架,但我不明白 @Configuration 注释的确切含义以及应该注释哪些类。在 Spring Boot 文档中,据说 Application 类应该是 @Configuration 类。

Spring Boot favors Java-based configuration. Although it is possible to call SpringApplication.run() with an XML source, we generally recommend that your primary source is a @Configuration class.

尝试了解@Configuration 我发现用@Configuration注解一个类表明该类可以被Spring IoC容器用作bean的来源定义。

如果是这样,那么这个应用程序类如何成为 bean 定义的来源?

@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class App
{
public static void main(String[] args) throws Exception {
SpringApplication.run(App.class, args);
}
}

我已经非常了解有关 Spring 的大多数其他基本概念,但我无法理解 @Configuration 的用途或哪些类应该是 @Configuration 类?有人可以帮忙吗。谢谢!!

最佳答案

你没看错。

@配置

@Configuration是 xml 文件的模拟。这些类是通过使用 @Bean 定义方法来定义 bean 的来源。注释。

@Configuration是:

  • 不需要,如果您已经通过了 sources 中的注释类调用SpringApplication.run()时的参数方法;
  • 必需,当您没有显式传递带注释的类,但它位于 @ComponentScan 中指定的包中时主要配置类的注释。

为了可读性,甚至显式传递为 sources 的类无论如何都可以用 @Configuration 注释- 只是为了更清楚地表明意图。

你当前的类并不是真正的 bean 定义源,因为它没有,但如果你有 @Bean带注释的方法,Spring 会看到它们。

@EnableAutoConfiguration

可以在有或没有 @Configuration 的情况下使用.它告诉 Spring 根据你在类路径中的内容来设置一些基本的基础设施。这是通过调用从 @Import 的值派生的所谓的导入类来完成的。注释 @EnableAutoConfiguration包括。只有一个类应该用 @EnableAutoConfiguration 注释,复制它不会做任何事情。

这个答案也可能有助于理解 Spring Boot 初始化过程:Which piece of code in Spring Boot actually registers dispatcher servlet for SpringMVC?

关于java - 为什么 Spring Boot Application 类需要有 @Configuration 注解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39247487/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com