一天学完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

在这里插入图片描述

  1. ctrl+shift+alt+/ --> registry

在这里插入图片描述

重启服务器

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 用于显示包含动态内容图片路径

    
    

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

    更新  
    

    含动态内容图片路径

    
    

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

    更新  
    

    一天学完SpringBoot_第1张图片

    一天学完SpringBoot_第2张图片

    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”)

    你可能感兴趣的:(SpringBoot,spring,boot,java,spring)