【SpringBoot】从创建第一个spring项目开始


🎬 那我掉的头发算什么个人主页
🔥 个人专栏 : 《javaSE》《数据结构》《数据库》《javaEE》

⛺️待到苦尽甘来日


引言

今天我想带着大家一起,从零开始搭建一个完整的 SpringBoot 项目,这也是我自己后端开发路上的第一步。从环境准备到写出第一个接口,再到扩展功能,我们一步一步来。

文章目录

什么是SpringBoot

SpringBoot 是 Spring 生态中最受欢迎的框架之一,它的核心目标就是让 Spring 应用的开发、部署和运行变得更简单。

四大核心特性

  1. 自动配置(Auto-Configuration)
    这是 SpringBoot 最核心的功能。它会根据你引入的依赖,自动配置 Spring 应用的底层组件。
  2. Starter 依赖(Starter Dependencies)
    Starter 是 SpringBoot 提供的 "场景化依赖包",它把某个开发场景下需要的所有依赖打包成一个依赖,你只需引入一个 starter,就能自动获得该场景的所有组件。
  3. 嵌入式服务器(Embedded Server)
    SpringBoot 内置了 Tomcat、Jetty、Undertow 等 Web 服务器,你只需运行启动类的 main 方法,就能直接启动项目,无需部署到外部服务器。
  4. 约定大于配置(Convention Over Configuration)(Embedded Server)
    SpringBoot 定义了一套标准的项目结构和默认配置,减少了手动配置的工作量:
    启动类默认放在根包(如 com.bite.spring.demo),自动扫描子包中的 Bean。
    配置文件默认放在 src/main/resources/application.properties/application.yml。
    静态资源默认放在 src/main/resources/static,模板文件放在 src/main/resources/templates。

总之,使用了springboot创建项目跟直接用maven相比,就是简单!简单!简单!

创建项目

其实创建一个spring项目就是创建一个Maven项目,只不过我们使用了SpringBoot插件之后就不需要每次重新自己去配置pom文件的依赖了,它提供了一系列「starter 依赖」可以自动引入该场景下的所有依赖。

新建项目时需要使用SpringBoot的插件,专业版内置了这个插件无需下载。如果使用的是社区版可以去下载一个叫做Spring Initializr的插件。还有就是类型选择Maven。剩下的团队名称和项目名称可以自己取一个。

在依赖这里我们可以选择Spring Web,这是我们写网络接口的基础。我们选择了这个依赖,相当于springboot代替我们使用maven配置了一个个的依赖。

pom文件

java 复制代码
<?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>4.0.1</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.hbu</groupId>
    <artifactId>springboot-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-demo</name>
    <description>springboot-demo</description>
    <url/>
    <licenses>
        <license/>
    </licenses>
    <developers>
        <developer/>
    </developers>
    <scm>
        <connection/>
        <developerConnection/>
        <tag/>
        <url/>
    </scm>
    <properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webmvc</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webmvc-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>

这是我刚刚打开自动显示的pom文件,里面把所有的依赖服务器等都配置好了,我们不需要再自己动手配置pom文件了。

项目结构

- src/main/java: Java 源代码
src/main/resources: 为静态资源或配置⽂件:
/static:静态资源文件夹, 比如js, css, html等静态⽂件, 不需要服务器数据进行绑定的页面
/templates:模版资源文件夹, 主要存放动态模板⽂件, ⽐如JSP, Freemarker, Thymeleaf等需要服务器动态渲染数据的⽂件
src/test/java: 测试代码源代码
target: 编译后的⽂件路径
pom.xml: maven 配置⽂件

项目启动

运行项目

我们只需要点开根目录下创建好的启动类运行其中的main方法就好了。

在这个类中有一个@SpringBootApplication注解,这个注解是将这个类标识成启动类的主要原因。一个项目只能有一个启动类。

出现这样的界面就代表项目成功的启动了。

输出Hello World

在javaEE这部分,我们主要学习的是做一个能和用户交互的网页,下面我将展示一个能在浏览器上访问的代码。

java 复制代码
package com.bite.spring.demo;

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

@RequestMapping("/hello")
@RestController
public class HelloController {
    @RequestMapping("m1")
    public String hello(){
        return "hello,spring boot";
    }
}

写完这个类后,要在启动类那里重新启动一下项目!(每一次修改代码后,只有重新启动了项目,被修改的代码才会生效!)

大家应该没有忘记127.0.0.1是回环ip吧😁

Web服务器

咱们知道,浏览器和服务器两端数据交互使用的是http协议。

Web服务器就是对HTTP协议进行封装,我们不需要直接对协议进行操作(比如咱们之前写过Socket编程),让Web开发更加便捷。所以Web服务器也被称为WWW服务器,能提供网上信息浏览服务。

常见的Web服务器有:Apache,Nginx,Tomcat,Jboss。

SpringBoot内置了Tomcat服务器,无需配置即可直接运行
Tocmat默认端⼝号是8080, 所以我们程序访问时的端口号也是8080

请求与响应

我们这样一个简单的交互过程其实就用到了前面javaEE初阶部分网络的很多知识,比如请求过程就是计算机通过IP地址定位目标计算机,也就是本主机,然后通过8080端口定位到进程,再通过/hello/m1定位到资源。响应过程就是服务器接收到信息后找到需要的资源并发送。

在学习网络部分时我们谈到过网页的状态码,当时只有一部分状态码我们平时可以遇到,比如404,200,403等,还是有很多状态码没见过,而且很难演示。现在我们就有机会了,因为我们日常访问的网站都是开发好测试好的网站,一般不会出错。但是我们自己写的小网页就可以自行控制,输出自己想要的结果了。
以上就是本篇博客全部内容!

相关推荐
空中湖6 小时前
Spring AI Agent 编排:ReAct 模式 + 多 Agent 协作实战
人工智能·spring·react.js
止语Lab7 小时前
好的 DX 不等于少写代码——三种语言的摩擦力设计课
后端
吃饱了得干活7 小时前
别再手动解析 LLM 输出了!LangChain 四种结构化输出方案对比
后端·python·langchain
程序员天天困7 小时前
Arthas trace 命令怎么用?一行定位最慢那行代码
jvm·后端
Huiturn7 小时前
GPT 5.6 连续编码 10 小时,纯 Python 啃下 Word 二进制格式——doc2docx 实现拆解
后端
dkbnull7 小时前
Spring Boot请求处理组件对比详解
java·spring boot
用户298698530147 小时前
Python 实现 Excel 与 Markdown 互转的实用指南
后端·python·excel
不能只会打代码7 小时前
Day 011 — Spring 全家桶深度拆解
spring boot·mybatis·spring aop·spring mvc·spring ioc
用户77283104908407 小时前
krono-job:零侵入、单二进制交付的分布式任务调度平台(开源)
后端
Conan在掘金7 小时前
鸿蒙报错速查:Function lacks ending return statement,返回路径漏 return 就炸,根因 + 真解法
后端