第一章:SpringBoot基础入门

第一章:SpringBoot基础入门

1.1:SpringSpinrBoot

  1. Spring能做什么

    • Spring的能力
      在这里插入图片描述

    • Spring的生态

      网址:https://spring.io/projects/spring-boot

      覆盖了:Web开发、数据访问、安全控制、分布式、消息服务、移动开发、批处理等。

    • Spring5重大升级

      1. 响应式编程
        在这里插入图片描述

      2. 内部源码设计

        基于Java8的一些新特性。

  2. 为什么用SpringBoot

    Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run"。能快速创建出生产级别的Spring应用。

    • SpringBoot的优点

      1. Create stand-alone Spring applications:创建独立的Spring应用。
      2. Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files):内嵌Web服务器。
      3. Provide opinionated 'starter' dependencies to simplify your build configuration:自动starter依赖,简单构建配置
      4. Automatically configure Spring and 3rd party libraries whenever possible:自动配置Spring以及第三方功能。
      5. Provide production-ready features such as metrics, health checks, and externalized configuration:提供生产级别的监控、健康检查以及外部化配置。
      6. Absolutely no code generation and no requirement for XML configuration:无代码生成、无需编写XML

      SpringBoot是整合Spring技术栈的一站式框架,SpringBoot是简化Spring技术栈的快速开发脚手架。

    • SpringBoot的缺点

      1. 迭代快,需要时刻关注变化。
      2. 封装太深,内部原理复杂,不容易精通。
  3. 时代背景

    • 微服务

      James Lewis and Martin Fowler (2014) 提出微服务完整概念。https://martinfowler.com/microservices/

      ​ 微服务是一种架构风格。一个应用拆分为一组小型服务。每个服务运行在自己的进程内,也就是可独立部署和升级。服务之间使用轻量级HTTP交互。服务围绕业务功能拆,可以由全自动部署机制独立部署,去中心化,服务自治。服务可以使用不同的语言、不同的存储技术。

    • 分布式
      在这里插入图片描述

      1. 分布式的困难

        远程调用、服务发现、负载均衡、服务容错、配置管理、服务监控、链路追踪、日志管理、任务调度。

      2. 分布式的解决

        SpringBoot + SpringCloud
        在这里插入图片描述

  4. 如何学习SpringBoot

    • 官网文档架构
      在这里插入图片描述
      在这里插入图片描述

      查看版本新特性:https://github.com/spring-projects/spring-boot/wiki#release-notes
      在这里插入图片描述

1.2:SpringBoot2入门

需求:浏览器发送/hello请求,响应Hello, Spring Boot 2

  1. 创建maven工程

    IDEA创建一个新的工程boot_helloworld_01

  2. 引入依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
    </parent>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    
  3. 创建主程序

    package com.wang;
    
    // 主程序类。@SpringBootApplication:这是一个SpringBoot应用
    @SpringBootApplication
    public class MainApplication {
         
        public static void main(String[] args) {
         
            SpringApplication.run(MainApplication.class, args);
        }
    }
    
  4. 编写业务

    package com.wang.controller;
    
    @RestController
    public class HelloController {
         
    
        @RequestMapping("/hello")
        public String handle01() {
         
            return "Hello, Spring Boot 2!";
        }
    }
    
  5. 测试

    直接运行mian方法,浏览器访问http://localhost:8080/hello
    在这里插入图片描述

  6. 修改配置

    resources文件夹下创建application.properties文件

    server.port=8888
    

    修改了上面配置,重新启动项目,http://localhost:8080/hello访问成功。

  7. 简化部署

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    

    重新打成一个jar包在cmd窗口下也能运行。
    在这里插入图片描述
    在这里插入图片描述

1.3:了解自动配置原理

  1. SpringBoot特点

    • 依赖管理

      1. 父项目做依赖管理

        几乎声明了所有开发中常用的依赖的版本号,自动版本仲裁机制。

        <!-- 依赖管理,自己工程引入的依赖 -->
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.3.4.RELEASE</version>
        </parent>
        
        <!-- 它的父项目 -->
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.3.4.RELEASE</version>
        </parent>
        
      2. 开发导入starter场景启动器

        • 见到很多spring-boot-starter-**就是某种场景。

        • 只要引入starter,这个场景的所有常规需要的依赖我们都自动引入。

        • SpringBoot所有支持的场景:

          https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.build-systems.starters

        • 见到*-spring-boot-starter:第三方为我们提供的简化开发的场景启动器。

        • 所有场景启动器最底层的依赖

          <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter</artifactId>
              <version>2.3.4.RELEASE</version>
              <scope>compile</scope>
          </dependency>
          
      3. 无需关注版本号,自动版本仲裁

        • 引入依赖默认都可以不写版本。
        • 引入非版本仲裁的jar,要写版本号。
      4. 可以修改默认版本

        查看spring-boot-dependencies里面规定当前依赖的版本用的key

        <!-- 举例:修改mysql的版本依赖 -->
        <properties>
            <mysql.version>5.1.43</mysql.version>
        </properties>
        
    • 自动配置

      1. 自动配好Tomcat

        • 引入Tomcat

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值