在很久很久以前,哈哈,a long story.
许多Spring Boot开发人员总是用@Configuration、@EnableAutoConfiguration和@ComponentScan来注释他们的主类。由于这些注释经常一起使用(特别是如果您遵循上面的最佳实践),SpringBoot提供了一个方便的@SpringBootApplication替代方案。
@SpringBootApplication注释等价于使用@Configuration、@EnableAutoConfiguration和@ComponentScan的默认属性:
![c383c415692acafc88bbd2a1abad545d.png](https://i-blog.csdnimg.cn/blog_migrate/b018eaacc82c7476e7e19e5bf6b42d6e.jpeg)
以下是@SpringBootApplication注释中keyijieshou接受的参数:
Exclude:从自动配置中排除类列表。
excludeNames:从自动配置中排除完全限定类名的列表。这个参数是从spring boot 1.3.0开始添加的。
scanBasePackageClasses:提供必须应用于@ComponentScan的类的列表。
scanBasePackages:提供必须应用于@ComponentScan的包的列表。这个参数是从spring boot 1.3.0开始添加的。
说到这了,我们顺便来说一下application.properties文件。
与标准Spring框架相比,Spring Boot为我们提供的一个优势是"配置更少"。Spring Boot将其典型的"约定优于配置"的方法应用于属性文件。Spring boot引入了名为"application.properties"的默认应用程序配置属性文件。而且不需要任何基于spring的配置即可自动检测。我们需要把属性文件放置在maven项目的"src/main/resources"目录中。
通过使用这个默认文件,我们不必显式地注册PropertySource,甚至不必提供到属性文件的路径。
Spring boot在application.properties文件内指定了应用程序内部的各种常见默认属性,以此来支持日志,AOP,身份识别,Hibernat, JPA, JMX,电子邮件等属性。我们不需要在所有的情况下指定所有的默认属性。我们可以按需指定它们。这就是spring减少基于XML的配置并将其更改为简单属性的方式。
您可以在这里找到spring boot提供的所有默认属性。(不可以发链接,大家可以参考下面的地址)
https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html