纯手写SpringBoot教案系列-SpringBoot入门

一.SpringBoot 简介

SpringBoot是伴随着Spring4.x的推出同时推出的一个框架.

框架的核心思想就是简化应用程序or网站的开发,提高开发效率

而SpringBoot将这一理念做到了极致,提出了约定大于配置的概念

随着近几年微服务,云技术的流行,SpringBoot更是成为企业级开发的必备利器

以下是来自百度百科的介绍

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

记住:虽然SpringBoot很牛很强大,但是它并不是一项新的技术,它只是整合了Spring全家桶

在我写这篇教案的时候,最新的SpringBoot版本是2.1.7

二.SpringBoot优缺点

1. 优点

  • 快速创建独立运行的Spring项目以及与主流框架集成
  • 使用嵌入式Servlet容器,应用无需打war包,以jar的形式独立运行(如果想打成war包也可以)
  • starters启动器,提供自动依赖与版本控制
  • 大量的自动配置,简化开发,也可以自己配置
  • no xml,开箱即用(pom.xml)
  • 准生产环境的运行时监控
  • 与云计算的天然集成(受益于Spring全家桶的无缝整合)

2. 缺点

  • 入门容易精通难,受制于之前对于Spring全家桶其余产品的熟悉程度,不建议新手直接学习

三.SpringBoot时代背景

1.微服务

敏捷开发创始人[martin fowler]([https://baike.baidu.com/item/martin%20fowler/9005728?fr=aladdin](https://baike.baidu.com/item/martin fowler/9005728?fr=aladdin))

什么是敏捷开发?

传统的软件开发,开发者得先研究清楚用户所有的需求,再开发出一套完整的方案。这不仅使得开发周期长,而且整套方案中决不允许有任何纰漏,否则用户的需求就无法满足,而对开发者来说,更改也非常困难。而敏捷开发则是从用户核心需求入手,在短时间内拿出一个原型,然后根据用户的其他需求增加模块,同时修改和完善,属于“可以让汽车一边跑,一边换轮子”的开发方式,非常适合对开发周期要求越来越短的商业软件开发。

实现敏捷开发的核心就是服务(也称业务)的拆分,将业务拆分为一个个小的模块,互相之间用HTTP的方式通信,就是我们所说的微服务架构

SpringBoot既可以开发AIO(All In One)的应用,Spring家族的出身也给予了SpringBoot"微"化和上云的能力

四.学习SpringBoot大前提

  • 拥有Spring框架的使用经验(必备)
  • 熟练使用Maven的项目构建和依赖管理
  • 熟练使用STS(Spring基于Eclipse的改版或IDEA)

五.本次课程环境约束

  • java version “1.8.0_191”(SpringBoot 推荐1.7以上)
  • Spring 4.x(必须是4.0以后)
  • SpringBoot 2.1.6.RELEASE
  • IntelliJ IDEA 2018.3.1 x64
  • mysql 5.5
  • Maven 3.3.9

六.开发前的准备

1. 下载,安装,破解IDEA(略)

2. 配置IDEA的Maven仓库

  1. 打开IDEA

  2. 同时按住Ctrl+Alt+S,唤醒IDEA设置界面

  3. 在搜索框内搜索maven(或者在build>build tools中找到maven设置)

  4. 选中maven版本为最后一项(本地仓库)

在这里插入图片描述

  1. 打开maven仓库地址,找到settings.xml(我的路径为:D:/Program Files/JetBrains/IntelliJ IDEA 2018.3.1/plugins/maven/lib/maven3)

  2. 打开settings.xml后,找到mirror,添加阿里云镜像服务器(防止被墙)

在这里插入图片描述

  1. 保存后配置完成

七.Hello World

浏览器访问网站根路径,服务器返回Hello World字符串

1.使用Spring Initializer快速创建SpringBoot项目

注意:一定要联网操作

  1. 打开IDEA或者STS
  2. 点击创建项目
  3. 输入包名:com.scj
  4. 输入组织ID:hello
  5. 下一步
  6. 选择web模块(可见SpringCloud的依赖很多,占了半数,可惜用不上)
  7. 下一步
  8. 点击完成IDEA会自动从官网下载目录结构和依赖

2. 删除多余的文件,保留目录结构如图

在这里插入图片描述

3. 自动生成的pom文件

<?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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.scj</groupId>
    <artifactId>hello</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>hello</name>
    <description>Hello World</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

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

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

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

除了必要的依赖以外,SpringBoot还贴心的为我们自动加了单元测试(因为世界上没有没有bug的代码)

4. 开发业务功能

在创建项目后,我们就可以直接开发业务功能而不用关心复杂繁琐的配置

  1. 找到src>main>java>com.scj.hello

  2. 右键新建一个Controller

  3. 按照这样命名,IDEA会自动帮我们创建controller包

在这里插入图片描述

  1. 编写BaseController代码

    package com.scj.hello.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    /**
     * @ClassName BaseController
     * @Description 基础控制器
     * @Author QinLing
     * @Date 2019/8/9 0009 15:46
     * @Version 1.0
     **/
    @Controller
    public class BaseController {
    
        @ResponseBody
        @RequestMapping("/")
        public String hello(){
            return "Hello SpringBoot";
        }
    
    }
    
    
    1. 点击运行

在这里插入图片描述

  1. 控制台输出信息没有报错且显示端口号说明运行成功

  2. 打开浏览器输入localhost:8080

  3. 得到结果

在这里插入图片描述

5. 简化我们的代码(组合注解)

在某些时候,我们可能一个Controller里全是@ResponseBody返回而非返回页面(例如开发API或者APP),这时候可以在整个类上加上@ResponseBody注解,形如

@ResponseBody
@Controller
public class BaseController {
    
    @RequestMapping("/")
    public String hello(){
        return "Hello SpringBoot";
    }

}

我们将以上这样的注解叫做RestAPI,

类上的两个注解@ResponseBody,@Controller

可以组合为@RestController


以上博文是我在培训的时候整理的教案,码字不易,转载请注明出处,联系邮箱[email protected]

发布了37 篇原创文章 · 获赞 35 · 访问量 6542

猜你喜欢

转载自blog.csdn.net/itkfdektxa/article/details/100126624
今日推荐