Spring boot

什么是Spring Boot

Spring Boot是构建基于Spring应用的起点.Spring Boot 在通过最少的Spring前期配置使你尽快的启动并运行.
Spring boot 是由Pivotal 团推提供的全新框架,其设计目的是用来简化新spring
应用的初始搭建以及开发过程,该框架使用了可定的方式来进行配置,从而让开发人员不在需要定义样板化的配置,Spring Boot 默认配置了很多框架的使用方式,就像Maven整合了所有的jar包,Spring Boot 整合了所有的框架,Spring Boot 的核心思想是:约定由于配置, 他的所有开发细节都是依据这个思想来进行实现的. Spring Boot 是一套全新的框架,它来自于spring ,spring所有具备的功能它都有并且更容易使用,同时还简化了Spring的应用开发,通过减少代码量就可以创建一个独立,产品级别的spring应用.

Spring Boot 的优势

以前我们搭建一个Spring Web项目时候需要
1.配置web.xml 加载Spring 和 Spring Mvc
2. 配置数据库连接,配置Spring 事务
3. 配置加载文件的读取,开启注解
4. 配置日志文件
5. 配置完成之后部署Tocamt 测试
假如我的项目仅仅只是发送一条短信,都需要这么配置一遍,但是如果使用的是Spring Boot 只需要非常稍等几个配置就可以迅速方便的搭建起来一套Web项目或者是一个微服务,Spring boot本身并不提供Spring 框架的核心特征以及扩展功能,只是用于快速,敏捷地开发新一代基于Spring 框架的应用程序.同时还集成了大量常用的第三方库配置,比如redis,MongoDB,JPA,RabbitMQ,Quartz等等,Spring Boot 应用中这些第三方几乎可以零配置进行开箱即用,大部分的Spring Boot应用都只需要非常少的配置代码,开发者可以更加专注于项目的业务逻辑.
一下是Spring Boot 的优势

1.Spring Boot 使开发变得简单,提供了丰富的解决方案,快速集成各种解决方案提升开发效率
2. Spring Boot 使配置也变得简单,提供了丰富的Starters(启动器) 集成主流开源产品往往只需要简单的配置即可
3. Spring Boot 使部署变得简单,其本身内嵌启动容器,仅仅需要一个命令既可以启动项目,结合Jenkins,Docker制动化运维非常容易实现
4. Spring Boot 使监控变得简单,自带监控组件,使用Actuator 轻松 监控服务器的各项状态

Spring Boot 的核心

Spring Boot 在通过最少的Spring前期配置使你尽快的启动并运行,他的核心设置思想是:约定由于配置

那么什么是约定由于配置,约定由于配置(Convention Over Configuration) ,也称作按约定编程,是一种软件设计范式,减少软件开发人员做决定的数量,获得简单的好处,而又不失灵活性,本质是说,开发人员只需要规定应用中不符合约定的部分.

Starters

Starter可以理解成启动器,它包含了一系列可以继承到应用里面的依赖包,你可以一站式继承Spring及其他及时,而不需要到处找示例和依赖包。
Spring boot Starter基于约定优于配置的理念设计,Spring boot Starter中有两个核心组件:自动配置代码和提供自动配置模块及其它有用的依赖
Spring boot整合了主流的开源软件形成一系列的Starter,形成了一致的编程体验来集成各种软件,Spring boot在集成做出了巨大的优化,让我们集成的时候只需要很少配置和代码来实现,可以说各种Starter就是Spring boot最大的优势之一,Starter是Spring Boot官方让我们管理依赖更加方便,整合了主流开源软件形成了一系列Starter,通过简单的配置某个Starter就可以使用此软件默认功能。
查看 spring boot Starters 常用列表可一去spring官网

starters 的启动过程

  1. Spring Boot 在启动的时候会去依赖的包中寻找resources/META-INF/spring.factories文件,然后根据文件中配置的jar包去扫描项目所依赖的jar包
  2. 根据spring,factories配置加载AutoConfigure类
  3. 根据@Conditional 的注解条件,进行自动配置并将Bean注入Spring Context

总结: Spring Boot 在启动的时候,按照约定去读取Spring Boot Starter 的配置信息,在根据配置信息对资源进行初始化,并注入到Spring 容器中.这样Spring Boot启动完毕后,就已经准备好了一切资源,使用过程中直接注入对应的Bean即可.

创建一个spring boot 项目

1.进入idea 的 Create New Project 页面
在这里插入图片描述
2. 点 Next 进入下一步

在这里插入图片描述
3. 配置好自己要配置的东西,这里我选择默认,选好之后点击Next

在这里插入图片描述
这里标红色的地方是选择自己需要的项目依赖,我这里选择一个web,继续Next

在这里插入图片描述

这里配置自己的项目名称,和路径之后就可以finish了,创建好了之后spring boot项目的目录结构在这里插入图片描述

spring boot 的基础结构共3个文件
src/main/java程序开发以及程序入口
srcmain/resources 配置文件
src/test/java 测试程序
到这里一个spring boot 的项目已经创建好了,下面看看spring boot 的配置

Spring Boot的配置

spring boot 的全局配置文件 application.properties 和application.yml配置文件.两个文件的作用都可以覆盖Spring Boot 自动配置的默认值

  1. application.properties
    首先位置可以出现在以下四个地方(优先级依次降低)
    1.项目根目录下的config文件夹下
    2.项目根目录下
    3.classPath下的config文件夹下
    4.classPath 下
    我们通常默认在resources目录下,其次properties文件的语法结构是key=value非常简单,主要用来配置数据库连接,日志文件等等相关配置,也可以覆盖Spring Boot 自动配置的默认值.

  2. application.yml
    YAML简介:
    yml是YAML(YAML Ain’t Markup Language)语言的文件,以数据为中心, 比json,xml等更适合做配置文件,yml和xml相比,少了一些结构化的代码,使数据更直接,一目了然,xml和json相比起来没有谁好谁坏,合适才是最好的.yml 的语法比json优雅,注释更标准,适合做配置文件.json作为一种机器交换格式比yml强更适合做api调用的数据交换.

    YML 语法:
    以空格的缩进程度来控制层级关系.空格的个数不重要,只要左边空格对其侧视为同一个层级.需要注意的是不能用tab代替空格.并且大小敏感.支持字面值,对象,数组三种数据结构,也支持符合结构.

    application.properties和application.yml的对比
    在这里插入图片描述在这里插入图片描述

    字面值 : 字符串,布尔类型,数值,日期,字符串默认不加引号,单引号会转义特殊字符.日期格式支持yyyy/MM/dd HH:mm:ss

    对象: 由键值对组成,形如key:(空格)value 的数据组成.冒号后面的空格必须是要有的,每组键值对占用一行,并且缩进的程度也要一致,也可以使用行内写法:{k1: v1,…kn:vn}

数组 : 由形如key:(空格)value的数据组成.短横线后的空格必须要有的,每组数据占用一行,并且缩进的程度也要一致,也可以使用行内写法{1,2…n}

复合结构: 上面三种数据结构的任意组合

注意 需要注意的是如果application.properties和application.yml文件同时存在的话会优先使用appl.properties.

自定义配置文件

配置自定义的变量
在这里插入图片描述
在helloController 中使用@Value注解获取数据
在这里插入图片描述
在浏览器访问之后
在这里插入图片描述
发现值以及成功赋进去了

当变量的值较多的时候可以创建一个类进行赋值

在这里插入图片描述
在类上加上@Component和@ConfigurationProperties(prefix =“com.example.demo”)注解
在这里插入图片描述
在HelloController类上注入intos类
在这里插入图片描述
在这里插入图片描述

总结,当变量多的时候可以采用类的方式进行注入,比较少的时候可以使用@Value注解的方式进行注入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值