SpringBoot


SpringBoot 基本应用

约定优于配置

Spring Boot 是所有基于Spring 开发的项目的起点,Spring Boot 的设计是为了 尽可能的跑起来Spring 应用程序,并且尽可能减少配置 又称约定编程,是一种软件设计范式 本质上说,系统,类库或框架应该假定合理的默认值,而非要求提供不必要的配置,例如模型中有一个名为User类,那么数据库中对应的表默认为User

SpringBoot

spring 优缺点

优点

spring 是java 的轻量级代替品,无需开发重量级,Spring为企业级 JAVA开发了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的java 对象实现EJB

缺点

  1. 虽然Spring的组件代码是轻量级的,但是它的配置确实重量级,一开始是用XML 配置,Spring 2.5 引入基于注解的组件扫描,这消除了大量针对 应用程序自身组件的显示XML 配置,3.0 引入基于java的配置,这是一种类型安全的可重构配置方式,可以代替xml.

  2. 所有这些配置代表了开发时的损耗,在思考 spring特性配置和解决业务问题之间需要进行思维切换。

  3. 项目的依赖管理比较复杂,可能会阻碍项目的开发进度

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-》自己配置

  1. SpringBootConfiguration //配置类,目的是找到SpringBootApplication所在的包,需要自动注入的配置类包,EnableAutoConfiguration//自动装配类
  2. AutoConfigurationPackage 自动配置包,将AutoConfigurationImportSelector 这个类导入Spring容器中,AutoConfigurationImportSelector可以帮助 springboot应用将所有符合条件的@Configuration配置都加载到当前Springboot创建并使用的IOC 容器(ApplicationContext)中,根据 spring.factories进行过滤(工厂类的全路径),根据pom.xml 组件进行过滤加载。
  3. ComponentScan 包扫描进行注解扫描,最后加入,