现在Spring Boot最新的版本为2.1.3。
配置信息跟Spring一样,使用@Configuration注解的类来实现,可以使用@Import注解导入其他的配置类,但配置信息必须在@ComponentScan的扫描范围内才能生效,Spring Boot的@SpringBootApplication中引用了该注解,会扫描当前包以及子包下的所有Spring组件,包括@Configuration。
当然你也可以使用XML来配置,但是文档还是建议你使用@Configuration,并使用@ImportResource来导入XML配置。Spring4以后官方就开始推荐使用配置类来替换繁琐的XML配置。(对我个菜鸟来说确实感觉配置类要比一大堆XML配置要易于理解)
接下来是Spring Boot最重要的特性,自动配置,嗯,真的很方便。
Spring Boot通过你添加的jar依赖尝试自动配置你的Spring应用。例如,如果HSQLDB在你的类路劲下,但是你没有任何手动地配置任何数据源连接信息的Bean,Spring Boot将会为应用自动配置一个内存数据源Bean。前提是你需要在你的配置类中添加@EnableAutoConfiguration注解,当然@SpringBootApplication中也引用了这个注解,所以只要在主类中引用@SpringBootApplication就会生效。很多时候,Spring Boot都是开箱即用,非常方便,但是当你需要定制一些自己应用的自动配置的时候,需要理解Spring Boot自动装配和环境上下文引入的先后顺序等一些原理,不然你会发现你的自动装配代码没生效的一些情况(跟我一样,焦头烂额)。
接下来文档介绍了自动配置是非侵入性的,例如,当你配置了自己的DataSource信息时,自动装配的DataSource将会回退,不会生效。
如果你想要某个自动装配不生效的话,你可以使用@EnableAutoConfiguration注解中的exclude属性,或者excludeName属性(字符串参数,需要提供类的权限定名,即包名加类名)。
Spring Boot的一个最大的优势是内嵌了一个HTTP服务器,如Tomcat(默认),你也可以自己指定。