SpringBoot|一天学完SpringBoot

1. SpringBoot简介 2. SpringBoot入门 3. SpringBoot整合MyBatis 4. thymeleaf模板技术 5. SpringBoot 的作用

SpringBoot简介 Spring框架特点是:轻代码、重配置
SpringBoot特点是:约定大于配置,主要功能是:
  1. 自动配置
  2. 依赖管理
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
SpringBoot所具备的特征有:
  1. 可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
  2. 内嵌Tomcat或Jetty等Servlet容器;
  3. 提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
  4. 尽可能自动配置Spring容器;
  5. 提供准备好的特性,如指标、健康检查和外部化配置;
  6. 绝对没有代码生成,不需要XML配置。
SpringBoot入门 创建SpringBoot的两种方式
  1. 去官网下载SpringBoot新项目,在本地ide中打开
  2. 直接在IDEA中创建SpringBoot项目
启动类
@SpringBootApplication public class Day6SpringbootApplication {public static void main(String[] args) { //启动SpringBoot项目 SpringApplication.run(Day6SpringbootApplication.class, args); } }

@SpringBootApplication注解必须加在启动类上,启动类必须在项目的最上层的包中,可以对子包中的类进行扫描
配置文件 SpringBoot支持三种配置文件格式,分别是:
  1. properties(默认)键值对格式, 键=值
配置名1.配置名2.配置名3=值 配置名1.配置名2.配置名4=值 配置名1.配置名2.配置名5=值server.port=8888 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/petdb?serverTimezone=UTC spring.datasource.username=root spring.datasource.password=root

  1. yml
  2. yaml
yml和yaml格式的写法:
配置名1: 配置名2: 配置名3: 值 配置名4: 值 配置名5: 值server: port: 8888 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/petdb?serverTimezone=UTC username: root password: root

热部署 修改代码后,不需要重启服务器,就能让代码生效
  1. 导入依赖
org.springframework.boot spring-boot-devtools runtime true

  1. 打开File-settings-compiler
SpringBoot|一天学完SpringBoot
文章图片

  1. ctrl+shift+alt+/ --> registry
SpringBoot|一天学完SpringBoot
文章图片

重启服务器
SpringBoot整合MyBatis
  1. 导入依赖
org.mybatis.spring.boot mybatis-spring-boot-starter 2.2.0

  1. 进行配置
server: port: 8888 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/petdb?serverTimezone=UTC username: root password: root mybatis: type-aliases-package: com.hopu.day6_springboot.entity mapper-locations: classpath:mapper/*.xml configuration: map-underscore-to-camel-case: true log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

  1. 在启动类上添加注解,扫描Mapper接口
    @MapperScan(basePackages = "com.hopu.day6_springboot.dao")

Thymeleaf SpringBoot默认支持Thymeleaf模板技术
Thymeleaf特点是:既可以单独显示静态页面,也可以整合动态数据
1) 导入依赖
org.springframework.boot spring-boot-starter-thymeleaf

2)在templates下新建html页面
在页面的html标签中添加: xmlns:th=“http://www.thymeleaf.org”
属性用法:
th:text 用于绑定标签的文字
<标签 th:text="${表达式}">

th:each 用于循环生成标签
th:each=”变量:${集合对象}”

实现固定次数的循环:
  • 1

  • th:src 用于显示包含动态内容图片路径
    SpringBoot|一天学完SpringBoot
    文章图片

    【SpringBoot|一天学完SpringBoot】th:href 用于指定包含动态数据的超链接地址
    更新  

    含动态内容图片路径
    SpringBoot|一天学完SpringBoot
    文章图片

    th:href 用于指定包含动态数据的超链接地址
    更新  

    SpringBoot|一天学完SpringBoot
    文章图片

    SpringBoot|一天学完SpringBoot
    文章图片

    SpringBoot的作用 自动依赖管理 导入springboot-starter后,引入大量相关依赖,如何依赖相互兼容?
    导入starter后,内部定义依赖包的版本
    spring-boot-parent spring-boot-dependencies starter内部定义大量内置依赖,规定好版本

    自动配置 使用SpringBoot项目后,不需要进行大量的配置就能实现开发,为什么?
    手动配置 —> 自动配置
    自动配置是用Java实现的
    1. 在spring-boot-autoconfigure包下保存大量的自动配置类
    2. 类名都保存 META-INFO/spring.factotiries文件下
    3. 自动配置类生效需要一定条件,如@ConditionalOnClass,引入某些类时(导入了对应的框架依赖)
    自动配置类是什么时候导入内存的
    启动类上的注解:@SpringBootApplication

    包含三个注解:
    1. @ComponentScan 包的扫描
    2. @SpringBootConfiguration 定义配置类
    3. @EnableAutoConfiguration 启动自动配置(将自动配置类加载到内存)
    怎么加载类到内存中? Class.forName(“完整类名”)
    @EnableAutoConfiguration --> AutoConfigurationImportSelector --> loadFactoryNames —> classLoader.getResources(“META-INF/spring.factories”)

      推荐阅读