史上最详细Springboot概述

SpringBoot

史上最详细Springboot概述_第1张图片

文章目录

  • SpringBoot
    • SpringBoot的概述
      • SpringBoot解决Spring的缺点
      • SpringBoot的特点
      • SpringBoot核心功能
    • SpringBoot入门
      • 搭建环境
      • Controller编写和实现
      • springBoot工程的热部署
      • IDEA快速创建SpringBoot工程
    • SpringBoot原理分析
    • application.yml配置文件
      • yml配置文件简介
      • yml配置文件的语法
        • 配置普通数据
        • 配置对象数据
        • 行内对象配置
        • 配置数组、集合
      • 配置文件与配置类的属性映射方式
        • 使用注解@Value映射
        • 通过@ConfigurationProperties映射数据
      • springBoot的配置文件-configuration-processor作用
    • SpringBoot集成其他技术
      • 集成Mybatis
      • 集成Junit
      • 集成SpringDataJPA
      • 集成Redis

SpringBoot的概述

SpringBoot解决Spring的缺点

SpringBoot对Spring的缺点进行改善和优化,基于约定优于配置的思想,可以让开发人员不必在配置与逻辑业务之间进行思维的切换,可以更好地投入到逻辑业务的代码编写中,从而大大提高了开发的效率。

SpringBoot的特点

  • 为基于Spring的开发提供更快的入门体验
  • 开箱即用,没有代码生成,也不用配置XML。同时也可以修改默认值来满足特定需求
  • 提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标、健康检查、外部配置
  • SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式

SpringBoot核心功能

1. 起步依赖
起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起支持某项功能。简单地说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能
2. 自动配置
SpringBoot的自动配置是一个运行时(应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是Spring自动完成的。

SpringBoot入门

搭建环境

建一个正常的maven工程,然后配置POM.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    
    <!-- 所有的springboot工程都必须继承spring-boot-starter-parent -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
    </parent>

    <groupId>1</groupId>
    <artifactId>springboot_quick</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!-- web功能的起步依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

</project>

再写一个启动类,我们叫MySpringBootApplication.java

package com;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

//声明该类是一个springBoot引导类
@SpringBootApplication
public class MySpringBootApplication {
	//main是Java程序入口
    public static void main(String[] args) {
    	//run方法 表示运行SpringBoot的引导类  run参数就是SpringBoot引导类的字节码对象
        SpringApplication.run(MySpringBootApplication.class);
    }
}

注意:哪个类上面有@SpringBootApplication,哪个类就是引导类。
启动下,控制台打印如下:
史上最详细Springboot概述_第2张图片

Controller编写和实现

编写个controller类,如QuickController.java

package com.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class QuickController {

    @RequestMapping("/quick")
    @ResponseBody
    public String quick(){
        return "hello springboot";
    }
}

再次启动下tomcat,后在页面上输入网址localhost:8080/quick
史上最详细Springboot概述_第3张图片

springBoot工程的热部署

目的是为了修改代码后,可以让他自动加载不用来回重启服务。在pom加个配置。

<!--热部署配置-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
    </dependency>

注意:IDEA进行SpringBoot热部署失败原因解决,修改IDEA进行自动编译的设置

  1. 选择区域勾选上
    史上最详细Springboot概述_第4张图片
  2. 按Shift+Ctrl+Alt+/ ,选择Registry
    史上最详细Springboot概述_第5张图片
    史上最详细Springboot概述_第6张图片
    勾选后完成热部署,这样修改信息后无需重新启动Tomcat,刷新页面即可。

IDEA快速创建SpringBoot工程

选择Spring Initializr
史上最详细Springboot概述_第7张图片
起个域名、包名等
史上最详细Springboot概述_第8张图片
选择Web
史上最详细Springboot概述_第9张图片
生成后发现,之前导入的坐标和创建的启动类。IDEA都自动给我们生成好了。
史上最详细Springboot概述_第10张图片

SpringBoot原理分析

起步依赖


    org.springframework.boot
    spring-boot-starter-parent
    2.0.1.RELEASE

自动配置

  org.springframework.boot
	spring-boot-starter-parent
	 2.0.1.RELEASE

application.yml配置文件

yml配置文件简介

YML文件格式是YAML(YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互,可以被支持YAML库的不同的编译语言程序导入,比如:C/C++ Ruby Python Java Perl C# PHP等。YML文件是以数据为核心的,比传统的xml方式更加简洁。
YML文件的扩展名可以使用 .yml 或者 .yaml

yml配置文件的语法

优先级:.properties > .yaml > .yml

配置普通数据

语法:key:value
示例代码:

#普通数据配置
name: hahaha

注意:value之前有一个空格

配置对象数据

#对象的配置
person:
	name: wangwu
	age: 18
	addr: dalian

行内对象配置

#行内对象配置
person: {name: zhangsan,age: 18,addr: dalian}

这个跟上面的等价,大部分情况配置用上面那种方法

配置数组、集合

# 配置数组、集合(普通字符串)
city:
	- beijing
	- tianjing
	- chongqing
	- shanghai
#或者
city: [beijing,tianjing,shanghai,chongqing]

# 配置数组、集合(对象数据)
student:
	- name: tom
	  age: 18
	  addr: beijing
	- name: lucy
      age: 17
      addr: shanghai
#或者
student: {{name: tom,age: 18,addr: beijing},{name: lucy,age: 17,addr: tianjing}}

#Map配置
map: 
	key1: value1
	key2: value2

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

使用注解@Value映射

我们可以通过@Value注解将配置文件中的值映射到一个Spring管理的Bean的字段上
优点:精确匹配
缺点:特别繁琐

@Value("%{name}")
private String name;

@Value("%{person.addr}")
private String addr;

通过@ConfigurationProperties映射数据

@ConfigurationProperties(prefix = "person")
public class AAA {
	private String name;
	private String addr;
	
	@RequestMapping("/qqq")
	@ResponseBody
	public String qqq(){
		//获得配置文件的信息
		return "name:"+name+",addr="+addr;
	}
	//创建get、set方法
	//。。。
}

springBoot的配置文件-configuration-processor作用

在这里插入图片描述
点击Open…
史上最详细Springboot概述_第11张图片
复制去POM.xml中去配置

    <!--@ConfigurationProperties的执行器的配置-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>

然后就可以有自动提示
史上最详细Springboot概述_第12张图片

SpringBoot集成其他技术

集成Mybatis

史上最详细Springboot概述_第13张图片
史上最详细Springboot概述_第14张图片
史上最详细Springboot概述_第15张图片
史上最详细Springboot概述_第16张图片
史上最详细Springboot概述_第17张图片
史上最详细Springboot概述_第18张图片
史上最详细Springboot概述_第19张图片
史上最详细Springboot概述_第20张图片
史上最详细Springboot概述_第21张图片
史上最详细Springboot概述_第22张图片

集成Junit

史上最详细Springboot概述_第23张图片
史上最详细Springboot概述_第24张图片
史上最详细Springboot概述_第25张图片

集成SpringDataJPA

史上最详细Springboot概述_第26张图片
史上最详细Springboot概述_第27张图片
史上最详细Springboot概述_第28张图片
史上最详细Springboot概述_第29张图片
史上最详细Springboot概述_第30张图片
史上最详细Springboot概述_第31张图片
史上最详细Springboot概述_第32张图片

集成Redis

史上最详细Springboot概述_第33张图片
启动Redis
史上最详细Springboot概述_第34张图片
史上最详细Springboot概述_第35张图片
史上最详细Springboot概述_第36张图片
史上最详细Springboot概述_第37张图片

你可能感兴趣的:(SpringBoot)