我正在学习有关Spring Framework的知识,但我无法理解@Configuration标注的确切含义以及应该对哪些类进行标注。在Spring Boot文档中,据说Application类应该是@Configurationclass。
@Configuration
Spring Boot支持基于Java的配置。尽管可以使用XML源调用SpringApplication.run(),但是我们通常建议您的主要源是@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); } }
我已经基本了解了有关Spring的大多数其他基本概念,但我不明白@Configuration哪个类应该成为@Configuration类的目的?有人可以帮忙吗?谢谢 !!
您没看错。
@Configuration是xml文件的模拟。通过使用@Bean批注定义方法,此类是Bean定义的来源。
@Bean
@Configuration 是:
sources
SpringApplication.run()
@ComponentScan
为了提高可读性,甚至显式传递的类(sources无论如何都可以使用注解)@Configuration-只是为了更清楚地表明意图。
您当前的类并不是真正的bean定义源,因为它没有任何定义,但是如果您有带@Bean注释的方法,Spring会看到它们。
可以搭配使用或不搭配使用@Configuration。它告诉Spring根据类路径中的内容来设置一些基本的基础结构。这是通过调用所谓的导入类来完成的,该类是从包含的@Import注释的值派生的@EnableAutoConfiguration。只有一个类应该用注释@EnableAutoConfiguration,重复它不会做任何事情。
@Import
@EnableAutoConfiguration