SpringBoot 基本应用
约定优于配置
Spring Boot 是所有基于Spring 开发的项目的起点,Spring Boot 的设计是为了 尽可能的跑起来Spring 应用程序,并且尽可能减少配置 又称约定编程,是一种软件设计范式 本质上说,系统,类库或框架应该假定合理的默认值,而非要求提供不必要的配置,例如模型中有一个名为User类,那么数据库中对应的表默认为User
SpringBoot
spring 优缺点
优点
spring 是java 的轻量级代替品,无需开发重量级,Spring为企业级 JAVA开发了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的java 对象实现EJB
缺点
-
虽然Spring的组件代码是轻量级的,但是它的配置确实重量级,一开始是用XML 配置,Spring 2.5 引入基于注解的组件扫描,这消除了大量针对 应用程序自身组件的显示XML 配置,3.0 引入基于java的配置,这是一种类型安全的可重构配置方式,可以代替xml.
-
所有这些配置代表了开发时的损耗,在思考 spring特性配置和解决业务问题之间需要进行思维切换。
- 项目的依赖管理比较复杂,可能会阻碍项目的开发进度
spring boot 解决Spring问题
springboot 对上述Spring的缺点进行改善和优化,基于约定优于配置的思想, 起步依赖 本质上是一个Maven项目对象模型,定义了对其他库的传递依赖,简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能 自动配置 自动将一些配置类的Bean 注册进IOC 容器,我们使用@autowired或者@resource等注解来使用它 自动的表现形式,只需要引用我们想用功能的包,相关的配置我们不用管,springboot 会自动注入这些配置bean
全局配置文件
全局配置文件能够将一些默认配置值进行修改,springboot 使用一个application.properties 或者application.yaml 的文件作为全局配置文件,该文件存储在src/main/resource 目录或者类路径的/config 一般会选择resource 目录,
application.properties 配置文件
使用 springinitializr 方式构建spring boot项目时,会在resource 目录下自动生成一个空的application.properties 文件, springboot 项目启动后会自动加载application.properties 文件。 我们可以在application.properties 文件中定义springboot 项目的相关属性,这些属性可以是系统属性,环境变量,命令参数,也可以是自定义配置文件名称和位置
配置文件属性注入
使用SpringBoot 全局配置文件设置属性时:如果配置属性时Springboot 已有属性,如果有port,那么自动扫描并独缺这些配置文件中属性值并覆盖默认属性 如果配置的属性时自定义属性,需要在程序中注入这些配置属性才可生效
使用@ConfigurationProperties 注入属性
提供的@ConfigurationProperties 注解用来快速方便讲配置文件中的自定义属性值批量注入到某个Bean 对象多个对应属性中
使用@value 注入属性
@value 注解是Spring提供,用来读取配置文件中的属性值并逐个注入到Bean对象的对应的属性中
使用@Configuration编写自定义配置类
Spring 启动原理 自己 -》所有-》pom-》自己配置
- SpringBootConfiguration //配置类,目的是找到SpringBootApplication所在的包,需要自动注入的配置类包,EnableAutoConfiguration//自动装配类
- AutoConfigurationPackage 自动配置包,将AutoConfigurationImportSelector 这个类导入Spring容器中,AutoConfigurationImportSelector可以帮助 springboot应用将所有符合条件的@Configuration配置都加载到当前Springboot创建并使用的IOC 容器(ApplicationContext)中,根据 spring.factories进行过滤(工厂类的全路径),根据pom.xml 组件进行过滤加载。
- ComponentScan 包扫描进行注解扫描,最后加入,