JAVA框架: Spring Boot

一.SpringBoot简介

  1. Spring的缺点:
    1. 虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。
    2. 所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但与此同时它要求的回报也不少。
    3. 除此之外,项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。
  2. SpringBoot的特点:
    为基于Spring的开发提供更快的入门体验
    开箱即用,没有代码生成,也无需XML配置。同时也可以修改默认值来满足特定的需求
    提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等
    SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式
  3. SpringBoot的核心功能
    1. 起步依赖
      起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。
      简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
    2. 自动配置
      Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。

二.SpringBoot快速入门

一.代码实现

  1. 创建Maven工程
  2. 添加SpringBoot的起步依赖
    SpringBoot要求,项目要继承SpringBoot的起步依赖spring-boot-starter-parent

    SpringBoot要集成SpringMVC进行Controller的开发,所以项目要导入web的启动依赖
  3. 编写SpringBoot引导类
    要通过SpringBoot提供的引导类起步SpringBoot才可以进行访问
  4. 编写Controller
    在引导类MySpringBootApplication同级包或者子级包中创建QuickStartController
  5. 测试
    运行MySpringBootApplication的main方法
    然后访问

二.快速入门解析

  1. SpringBoot工程热部署
    我们在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,浪费了大量的时间,我们可以在修改代码后不重启就能生效,在 pom.xml 中添加如下配置就可以实现这样的功能,我们称之为热部署。

    注意:IDEA进行SpringBoot热部署失败原因
    出现这种情况,并不是热部署配置问题,其根本原因是因为Intellij IEDA默认情况下不会自动编译,需要对IDEA进行自动编译的设置,如下:

    然后 Shift+Ctrl+Alt+/,选择Registry

三.SpringBoot的配置文件

一.SpringBoot配置文件类型

  1. SpringBoot配置文件类型和作用
    1. SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置。
    2. SpringBoot默认会从Resources目录下加载application.properties或application.yml(application.yaml)文件,其中,application.properties文件是键值对类型的文件,之前一直在使用,所以此处不在对properties文件的格式进行阐述。除了properties文件外,SpringBoot还可以使用yml文件进行配置,下面对yml文件进行讲解。
  2. application.yml配置文件
    1. yml配置文件简介
      YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。YML文件是以数据为核心的,比传统的xml方式更加简洁。
      YML文件的扩展名可以使用.yml或者.yaml。
    2. yml配置文件的语法
      1. 配置普通数据
        语法: key: value
        示例代码:
      2. 配置对象数据
        语法:
        key:
        key1: value1
        key2: value2
        或者:
        key: {key1: value1,key2: value2}
        示例代码:
      3. 配置Map数据
        同上面的对象写法
      4. 配置数组(List、Set)数据
        语法:
        key:
        - value1
        - value2
        或者:
        key: [value1,value2]
        示例代码:
  3. SpringBoot配置信息的查询
    1. SpringBoot的配置文件,主要的目的就是对配置信息进行修改的,但在配置时的key从哪里去查询呢?我们可以查阅SpringBoot的官方文档
    2. 文档URL:https://docs.spring.io/spring-boot/docs/2.0.1.RELEASE/reference/htmlsingle/#common-applicationproperties

二.配置文件与配置类的属性映射方式

  1. 我们可以通过@Value注解将配置文件中的值映射到一个Spring管理的Bean的字段上
                   
  2. 使用注解@ConfigurationProperties映射

    注意:使用@ConfigurationProperties方式可以进行配置文件与实体字段的自动映射,但需要字段必须提供set方法才可以,而使用@Value注解修饰的字段不需要提供set方法
       

四.SpringBoot与整合其他技术

一.SpringBoot整合Mybatis

  1. 添加Mybatis的起步依赖
  2. 添加数据库驱动坐标
  3. 添加数据库连接信息
    在application.properties中添加数据量的连接信息
  4. 创建user表
  5. 创建实体Bean
  6. 编写Mapper

    注意:@Mapper标记该类是一个mybatis的mapper接口,可以被spring boot自动扫描到spring上下文中
  7. 配置Mapper映射文件
    在src\main\resources\mapper路径下加入UserMapper.xml配置文件
  8. 在application.properties中添加mybatis的信息
  9. 编写测试Controller

二.SpringBoot整合Junit

  1. 添加Junit的起步依赖
  2. 编写测试类

    SpringRunner继承自SpringJUnit4ClassRunner,使用哪一个Spring提供的测试测试引擎都可以
    @SpringBootTest的属性指定的是引导类的字节码对象

三.SpringBoot整合Spring Data JPA

  1. 添加Spring Data JPA的起步依赖
  2. 添加数据库驱动依赖
  3. 在application.properties中配置数据库和jpa的相关属性
  4. 创建实体配置实体

  5. 编写UserRepository
  6. 编写测试类

四.SpringBoot整合Redis

  1. 添加redis的起步依赖
  2. 配置redis的连接信息
  3. 注入RedisTemplate测试redis操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值