史上最详细Springboot概述

SpringBoot

在这里插入图片描述

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,哪个类就是引导类。
启动下,控制台打印如下:
在这里插入图片描述

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工程的热部署

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

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

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

  1. 选择区域勾选上
    在这里插入图片描述
  2. 按Shift+Ctrl+Alt+/ ,选择Registry
    在这里插入图片描述
    在这里插入图片描述
    勾选后完成热部署,这样修改信息后无需重新启动Tomcat,刷新页面即可。

IDEA快速创建SpringBoot工程

选择Spring Initializr
在这里插入图片描述
起个域名、包名等
在这里插入图片描述
选择Web
在这里插入图片描述
生成后发现,之前导入的坐标和创建的启动类。IDEA都自动给我们生成好了。
在这里插入图片描述

SpringBoot原理分析

起步依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
</parent>

自动配置

  <groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	 <version>2.0.1.RELEASE</version>

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…
在这里插入图片描述
复制去POM.xml中去配置

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

然后就可以有自动提示
在这里插入图片描述

SpringBoot集成其他技术

集成Mybatis

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

集成Junit

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

集成SpringDataJPA

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

集成Redis

在这里插入图片描述
启动Redis
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值