《SpringBoot篇》01.Springboot超详细入门(基础篇)(一)

简介: 《SpringBoot篇》01.Springboot超详细入门(基础篇)(一)

JC-1.快速上手SpringBoot


学SpringBoot技术由Pivotal团队研发制作,功能的话简单概括就是加速Spring程序的开发,这个加速要从如下两个方面来说


Spring程序初始搭建过程

Spring程序的开发过程

通过上面两个方面的定位,我们可以产生两个模糊的概念:


SpringBoot开发团队认为原始的Spring程序初始搭建的时候可能有些繁琐,这个过程是可以简化的,那原始的Spring程序初始搭建过程都包含哪些东西了呢?为什么觉得繁琐呢?最基本的Spring程序至少有一个配置文件或配置类,用来描述Spring的配置信息,莫非这个文件都可以不写?此外现在企业级开发使用Spring大部分情况下是做web开发,如果做web开发的话,还要在加载web环境时加载时加载指定的spring配置,这都是最基本的需求了,不写的话怎么知道加载哪个配置文件/配置类呢?那换了SpringBoot技术以后呢,这些还要写吗?谜底稍后揭晓,先卖个关子

SpringBoot开发团队认为原始的Spring程序开发的过程也有些繁琐,这个过程仍然可以简化。开发过程无外乎使用什么技术,导入对应的jar包(或坐标)然后将这个技术的核心对象交给Spring容器管理,也就是配置成Spring容器管控的bean就可以了。这都是基本操作啊,难道这些东西SpringBoot也能帮我们简化?

带着上面这些疑问我们就着手第一个SpringBoot程序的开发了,看看到底使用SpringBoot技术能简化开发到什么程度。


温馨提示


如果对Spring程序的基础开发不太懂的小伙伴,看到这里可以弃坑了,下面的内容学习需要具备Spring技术的知识,硬着头皮学不下去的。


JC-1-1.SpringBoot入门程序制作(一)

下面让我们开始做第一个SpringBoot程序吧,本课程基于Idea2020.3版本制作,使用的Maven版本为3.6.1,JDK版本为1.8。如果你的环境和上述环境不同,可能在操作界面和操作过程中略有不同,只要软件匹配兼容即可(说到这个Idea和Maven,它们两个还真不是什么版本都能搭到一起的,说多了都是泪啊)。


下面使用SpringBoot技术快速构建一个SpringMVC的程序,通过这个过程体会简化二字的含义


步骤①:创建新模块,选择Spring Initializr,并配置模块相关基础信息


image.png


特别关注:第3步点击Next时,Idea需要联网状态才可以进入到后面那一页,如果不能正常联网,就无法正确到达右面那个设置页了,会一直联网转转转


特别关注:第5步选择java版本和你计算机上安装的JDK版本匹配即可,但是最低要求为JDK8或以上版本,推荐使用8或11


步骤②:选择当前模块需要使用的技术集


image.png


按照要求,左侧选择web,然后在中间选择Spring Web即可,选完右侧就出现了新的内容项,这就表示勾选成功了


关注:此处选择的SpringBoot的版本使用默认的就可以了,需要说一点,SpringBoot的版本升级速度很快,


步骤③:开发控制器类


//Rest模式
@RestController
@RequestMapping("/books")
public class BookController {
    @GetMapping
    public String getById(){
        System.out.println("springboot is running...");
        return "springboot is running...";
    }
}

关注: 入门案例制作的SpringMVC的控制器基于Rest风格开发,当然此处使用原始格式制作SpringMVC的程序也是没有问题的,上例中的@RestController与@GetMapping注解是基于Restful开发的典型注解


关注:做到这里SpringBoot程序的最基础的开发已经做完了,现在就可以正常的运行Spring程序了。Tomcat服务器没有配置,Spring也没有配置,这就是SpringBoot技术的强大之处。关于内部工作流程后面再说.


步骤④:运行自动生成的Application类


使用带main方法的java程序的运行形式来运行程序,运行完毕后,控制台输出上述信息。

image.png


测试功能是否工作正常.

访问路径: http://localhost:8080/books

目前只有两个文件展现到了开发者面前


pom.xml


这是maven的配置文件,描述了当前工程构建时相应的配置信息


<?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 https://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.5.4</version>
    </parent>
    <groupId>com.itheima</groupId>
    <artifactId>springboot_01_01_quickstart</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <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>
</project>

配置中有两个信息需要关注,一个是parent,也就是当前工程继承了另外一个工程,干什么用的后面再说,还有依赖坐标,干什么用的后面再说


Application类


@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

这个类功能很简单,就一句代码,前面运行程序就是运行的这个类


通过上面的制作,我们不难发现,SpringBoot程序简直太好写了,几乎什么都没写,功能就有了,这也是SpringBoot技术为什么现在这么火的原因,和Spirng程序相比,SpringBoot程序在开发的过程中各个层面均具有优势


image.png

一句话总结一下就是能少写就少写,能不写就不写,这就是SpringBoot技术给我们带来的好处。


总结


开发SpringBoot程序可以根据向导进行联网快速制作

SpringBoot程序需要基于JDK8以上版本进行制作

SpringBoot程序中需要使用何种功能通过勾选选择技术,也可以手工添加对应的要使用的技术(后期讲解)

运行SpringBoot程序通过运行Application程序入口进行

JC-1-2.SpringBoot入门程序制作(二)

IDEA不能联网创建SpringBoot程序。


其实在SpringBoot的官网里面就可以直接创建SpringBoot程序


SpringBoot官网和Spring的官网是在一起的,都是 spring.io 。你可以通过项目一级一级的找到SpringBoot技术的介绍页,然后在页面中间部位找到如下内容



image.png


步骤①:点击Spring Initializr后进入到创建SpringBoot程序的界面上,下面是输入信息的过程,和前面的一样,只是界面变了而已,根据自己的要求,在左侧选择对应信息和输入对应的信息即可


image.png


步骤②:右侧的ADD DEPENDENCIES用于选择使用何种技术,和之前勾选的Spring WEB是在做同一件事,仅仅是界面不同而已,点击后打开网页版的技术选择界面


image.png


步骤③:所有信息设置完毕后,点击下面左侧按钮,生成一个文件包


image.png


步骤④:保存后得到一个压缩文件,这个文件打开后就是创建的SpringBoot工程文件夹了


image.png


步骤⑤:解压缩此文件后,得到工程目录,在Idea中导入即可使用,和之前创建的东西完全一样。下面就可以自己创建一个Controller测试一下是否能用了。


温馨提示


Idea工具中创建SpringBoot工程其实连接的就是SpringBoot的官网,走的就是这个过程,只不过Idea把界面给整合了一下,读取到了Spring官网给的信息,然后展示到了Idea的界面中而已,不信你可以看看下面这个步骤


JC-1-3.SpringBoot入门程序制作(三)

解决无法访问spring.io官网,如何创建springboot项目


创建工程时,切换选择starter服务路径,然后手工收入阿里云提供给我们的使用地址即可。

地址:http://start.aliyun.comhttps://start.aliyun.com


image.png


阿里为了便于自己开发使用,因此在依赖坐标中添加了一些阿里相关的技术,也是为了推广自己的技术吧,所以在依赖选择列表中,你有了更多的选择。

不过有一点需要说清楚,阿里云地址默认创建的SpringBoot工程版本是2.4.1,所以如果你想更换其他的版本,创建项目后手工修改即可,别忘了刷新一下,加载新版本信息。


image.png


注意:阿里云提供的工程创建地址初始化完毕后和实用SpringBoot官网创建出来的工程略有区别。主要是在配置文件的形式上有区别。这个信息在后面讲解Boot程序的执行流程时给大家揭晓


总结


选择start来源为自定义URL

输入阿里云start地址

创建项目

JC-1-4.SpringBoot入门程序制作(四)

不能上网,还想创建SpringBoot工程,能不能做呢?能做,但是你要先问问自己联网和不联网到底差别是什么?这个信息找到以后,你就发现,你把联网要干的事情都提前准备好,就无需联网了。


联网做什么呢?首先SpringBoot工程也是基于Maven构建的,而Maven工程当使用了一些自己需要使用又不存在的东西时,就要去下载。其实SpringBoot工程创建的时候就是去下载一些必要的组件的。你把这些东西给提前准备好就可以了吗?是的,就是这样。


下面咱们就一起手工创建一个SpringBoot工程


步骤①:创建工程时,选择手工创建Maven工程


image.png


步骤②:参照标准SpringBoot工程的pom文件,书写自己的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.5.4</version>
    </parent>
    <groupId>com.itheima</groupId>
    <artifactId>springboot_01_04_quickstart</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

步骤③:之前运行SpringBoot工程需要一个类,这个缺不了,自己手写一个就行了,建议按照之前的目录结构来创建,先别玩花样,先学走后学跑。类名可以自定义,关联的名称一切修改即可


@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(<Application.class);
    }
}

关注:类上面的注解@SpringBootApplication千万别丢了,这个是核心,后面再介绍


关注:类名可以自定义,只要保障下面代码中使用的类名和你自己定义的名称一样即可,也就是run方法中的那个class对应的名称


步骤④:下面就可以自己创建一个Controller测试一下是否能用了,和之前没有差别了


看到这里其实应该能够想明白了,通过向导或者网站创建的SpringBoot工程其实就是帮你写了一些代码,而现在是自己手写,写的内容都一样,仅此而已。


温馨提示


如果你的计算机上从来没有创建成功过SpringBoot工程,自然也就没有下载过SpringBoot对应的坐标,那用手写创建的方式在不联网的情况下肯定该是不能用的。所谓手写,其实就是自己写别人帮你生成的东西,但是引用的坐标对应的资源必须保障maven仓库里面有才行,如果没有,还是要去下载的


总结


创建普通Maven工程

继承spring-boot-starter-parent

添加依赖spring-boot-starter-web

制作引导类Application

到这里其实学习了4种创建SpringBoot工程的方式,其实本质是一样的,就是根据SpringBoot工程的文件格式要求,通过不同时方式生成或者手写得到对应的文件,效果完全一样。


相关文章
|
XML Java 应用服务中间件
SpringBoot 入门程序|学习笔记
快速学习 SpringBoot 入门程序
165 0
|
easyexcel Java
《SpringBoot篇》21.SpringBoot整合EasyExcel详解(二)
《SpringBoot篇》21.SpringBoot整合EasyExcel详解(二)
228 0
《SpringBoot篇》21.SpringBoot整合EasyExcel详解(二)
|
存储 JavaScript easyexcel
《SpringBoot篇》21.SpringBoot整合EasyExcel详解(一)
《SpringBoot篇》21.SpringBoot整合EasyExcel详解(一)
559 0
《SpringBoot篇》21.SpringBoot整合EasyExcel详解(一)
|
存储 开发框架 Java
《SpringBoot篇》19.SpringBoot整合Quart
《SpringBoot篇》19.SpringBoot整合Quart
300 0
《SpringBoot篇》19.SpringBoot整合Quart
|
缓存 Java 开发者
《SpringBoot篇》18.SpringBoot整合Memcached缓存超详细教程(二)
《SpringBoot篇》18.SpringBoot整合Memcached缓存超详细教程(二)
343 0
《SpringBoot篇》18.SpringBoot整合Memcached缓存超详细教程(二)
|
存储 缓存 NoSQL
《SpringBoot篇》18.SpringBoot整合Memcached缓存超详细教程(一)
《SpringBoot篇》18.SpringBoot整合Memcached缓存超详细教程(一)
165 0
《SpringBoot篇》18.SpringBoot整合Memcached缓存超详细教程(一)
|
存储 缓存 NoSQL
《SpringBoot篇》17.SpringBoot内置缓存
《SpringBoot篇》17.SpringBoot内置缓存
264 0
《SpringBoot篇》17.SpringBoot内置缓存
|
Java 索引 容器
《SpringBoot篇》16.SpringBoot整合Elasticsearch超详细教程(三)
《SpringBoot篇》16.SpringBoot整合Elasticsearch超详细教程(三)
323 0
《SpringBoot篇》16.SpringBoot整合Elasticsearch超详细教程(三)
|
NoSQL Java MongoDB
《SpringBoot篇》16.SpringBoot整合Elasticsearch超详细教程(二)
《SpringBoot篇》16.SpringBoot整合Elasticsearch超详细教程(二)
376 0
《SpringBoot篇》16.SpringBoot整合Elasticsearch超详细教程(二)
|
存储 自然语言处理 搜索推荐
《SpringBoot篇》16.SpringBoot整合Elasticsearch超详细教程(一)
《SpringBoot篇》16.SpringBoot整合Elasticsearch超详细教程(一)
342 0
《SpringBoot篇》16.SpringBoot整合Elasticsearch超详细教程(一)