为什么春天引导应用程序类需要有@Configuration注释?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么春天引导应用程序类需要有@Configuration注释?相关的知识,希望对你有一定的参考价值。
我正在学习有关Spring框架,但我不明白究竟是什么@Configuration
注解装置和类应如此注解。在Spring启动文档据说是应用程序类应该是@Configuration
类。
春天引导有利于基于Java的配置。虽然可以调用SpringApplication.run()以XML源,我们一般建议您的主要来源是@Configuration类。
想了解@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);
我已经非常了解关于春天最等基本概念,但我不明白@Configuration
的目的或类应该@Configuration
类?是否有人可以帮助。谢谢 !!
你的理解是正确的。
@Configuration
@Configuration
是xml文件的类似物。这样的类是通过定义与@Bean
注释方法的bean定义源。
@Configuration
是:
- 不是必需的,如果你调用
sources
方法时已通过在SpringApplication.run()
参数的注解类; - 需要,当你不通过注释类明确的,但它是在在你的主要配置类的
@ComponentScan
注解指定的包。
为了增强可读性,被作为sources
甚至明确地传递类可无论如何与@Configuration
注解 - 只是为了证明意图更加清晰。
您当前的阶级是不是真正的bean定义来源,因为它没有任何的,但如果你已经@Bean
注解的方法,春天会看到他们。
@EnableAutoConfiguration
可以使用或不@Configuration
使用。它告诉Spring通过设置你的classpath什么的一些基本的基础设施的判断。它是通过调用该是一个从@Import
注解@EnableAutoConfiguration
包括价值得出的所谓进口类完成。只有一类应该@EnableAutoConfiguration
被标注,复制它不会做任何事情。
这个答案也可能有助于理解Spring启动初始化过程:Which piece of code in Spring Boot actually registers dispatcher servlet for SpringMVC?
我认为主要的原因,为什么春启动的@SpringBootApplication
注释自动应用@Configuration
是允许在非常相同的类中添加bean定义。一个春天启动的主要目标是让你创建应用程序快捷,无需额外的动作。所以,通过允许您添加bean定义权到应用程序的类,你不需要额外创建类来保存您的配置。你只有1级,就是这样。
以上是关于为什么春天引导应用程序类需要有@Configuration注释?的主要内容,如果未能解决你的问题,请参考以下文章
Hibernate Sessionfactory 重启 |春天