1.什么是SpringBoot
用一些固定的方式来构建生产级别的spring应用。spring boot推崇约定大于配置的方式便于你能够快速的启动并运行程序。
2.为什么要学spring boot
java传统项目:复杂的配置,混乱的依赖管理。spring boot简化了基于spring的应用开发,只需要“run”就能创建一个独立的、生产级别的Spring应用。Spring Boot为Spring平台及第三方库提供开箱即用的设置(提供默认设置,存放默认配置的包就是启动器),这样我们就可以简单的开始。多数Spring Boot应用只需要很少的Spring配置。
3.Spring Boot 主要目标是:
-
-
开箱即用(启动器starter-其实就是SpringBoot提供的一个jar包),但通过自己设置参数(.properties),即可快速摆脱这种方式。
-
提供了一些大型项目中常见的非功能性特性,如内嵌服务器、安全、指标,健康检测、外部化配置等
-
绝对没有代码生成,也无需 XML 配置。
4.常用注解:
-
-
@Bean
:声明在方法上,将方法的返回值加入Bean容器,代替<bean>
标签 -
@value
:属性注入 -
@PropertySource
:指定外部属性文件,
5.@EnableConfigurationProperties vs @Value
@EnableConfigurationProperties支持Relaxed binding和meta-data support
Relaxed binding:松散绑定。不严格要求属性文件中的属性名与成员变量名一致。支持驼峰,中划线,下划线等等转换,甚至支持对象引导。比如:user.friend.name:代表的是user对象中的friend属性中的name属性,显然friend也是对象。@value注解就难以完成这样的注入方式。
meta-data support:元数据支持,帮助IDE生成属性提示(写开源框架会用到)。
6.spring boot 启动类
-
-
-
@EnableAutoConfiguration
-
@ComponentScan
-
-
run方法:SpringApplication.run()
通过basePackageClasses或者basePackages属性来指定要扫描的包。如果没有指定这些属性,那么将从声明这个注解的类所在的包开始,扫描包及子包。