Skip to content


创建 SpringbootWeb 项目



🔔 提示:首次创建 Springboot 项目时,会下载依赖,可能会比较慢,需要耐心等待

基本介绍

静态资源

像 HTML、CSS、JS 以及图片、音频、视频等这些资源,我们都称为静态资源。 所谓静态资源,就是指在服务器上存储的不会改变的数据,通常不会根据用户的请求而变化

动态资源

(1)那与静态资源对应的还有一类资源,就是动态资源。那所谓动态资源,就是指在服务器端上存储的,会根据用户请求和其他数据动态生成的,内容可能会在每次请求时都发生变化。比如:Servlet、JSP 等(负责逻辑处理)。而 Servlet、JSP 这些技术现在早都被企业淘汰了,现在在企业项目开发中,都是直接基于 Spring 框架来构建动态资源

(2)而对于我们 java 程序开发的动态资源来说,我们通常会将这些动态资源部署在 Tomcat,这样的 Web 服务器中运行。 而浏览器与服务器在通信的时候,基本都是基于 HTTP 协议的。

(3)那上述所描述的这种浏览器/服务器的架构模式呢,我们称之为:BS 架构

两种架构

BS 架构

(1)Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端

(2)优点:维护方便

(3) 缺点:体验一般

CS 架构

(1)Client/Server,客户端/服务器架构模式。需要单独开发维护客户端

(2)优点:体验不错

(3)缺点:开发维护麻烦

Spring 生态介绍

我们可以打开 Spring 的官网(https://spring.io),去看一下Spring的简介:Spring makes Java simple

Spring 发展到今天已经形成了一种开发生态圈,Spring 提供了若干个子项目,每个项目用于完成特定的功能。而我们在项目开发时,一般会偏向于选择这一套 spring 家族的技术,来解决对应领域的问题,那我们称这一套技术为 spring 全家桶

而 Spring 家族旗下这么多的技术,最基础、最核心的是 SpringFramework。其他的 spring 家族的技术,都是基于 SpringFramework 的,SpringFramework 中提供很多实用功能,如:依赖注入、事务管理、web 开发支持、数据访问、消息服务等等

如果我们在项目中,直接基于 SpringFramework 进行开发,存在两个问题

(1)配置繁琐

(2)入门难度大

所以基于此呢,spring 官方推荐我们从另外一个项目开始学习,那就是目前最火爆的 SpringBoot

通过 springboot 就可以快速的帮我们构建应用程序,所以 springboot 呢,最大的特点有两个

(1)简化配置

(2)快速开发

⭐Spring Boot 可以帮助我们非常快速的构建应用程序、简化开发、提高效率

⭐ 而直接基于 SpringBoot 进行项目构建和开发,不仅是 Spring 官方推荐的方式,也是现在企业开发的主流

入门程序

需求实现

基于 SpringBoot 的方式开发一个 web 应用,浏览器发起请求/hello 后,给浏览器返回字符串 "Hello xxx ~"。

代码示例

java
package com.jackonling;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController // 标识当前类是一个请求处理类
public class HelloController {
    @RequestMapping("/hello")// 标识请求路径
    public String hello(String name){
        System.out.println("HelloController ... hello:" + name);
        return "Hello " + name;
    }
}

查看结果

在控制台的提示信息中查看监听端口

浏览器输入:http://localhost:8080/hello?name=jackonling

解决连接超时

联网基于 spring 的脚手架创建 SpringBoot 项目,偶尔可能会因为网内网络的原因,链接不上 SpringBoot 的脚手架网站

此时可以使用阿里云提供的脚手架,网址为:https://start.aliyun.com

项目启动分析

为什么一个 main 方法就可以将 Web 应用启动了?

因为我们在创建 springboot 项目的时候,选择了 web 开发的起步依赖 spring-boot-starter-web。而 spring-boot-starter-web 依赖,又依赖了 spring-boot-starter-tomcat,由于 maven 的依赖传递特性,那么在我们创建的 springboot 项目中也就已经有了 tomcat 的依赖,这个其实就是 springboot 中内嵌的 tomcat

而我们运行引导类中的 main 方法,其实启动的就是 springboot 中内嵌的 Tomcat 服务器。 而我们所开发的项目,也会自动的部署在该 tomcat 服务器中,并占用 8080 端口号

起步依赖

一种为开发者提供简化配置和集成的机制,使得构建 Spring 应用程序更加轻松。起步依赖本质上是一组预定义的依赖项集合,它们一起提供了在特定场景下开发 Spring 应用所需的所有库和配置

(1)spring-boot-starter-web:包含了 web 应用开发所需要的常见依赖

(2)spring-boot-starter-test:包含了单元测试所需要的常见依赖

官方提供的 starter

https://docs.spring.io/spring-boot/docs/3.1.3/reference/htmlsingle/#using.build-systems.starters