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操作

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值