【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等,还是有很多状态码没见过,而且很难演示。现在我们就有机会了,因为我们日常访问的网站都是开发好测试好的网站,一般不会出错。但是我们自己写的小网页就可以自行控制,输出自己想要的结果了。
以上就是本篇博客全部内容!

相关推荐
Chan162 小时前
【 Java八股文面试 | RabbitMQ篇 】
java·spring boot·spring·面试·java-ee·rabbitmq·java-rabbitmq
源代码•宸2 小时前
Golang原理剖析(channel源码分析)
开发语言·后端·golang·select·channel·hchan·sudog
Charlie_lll2 小时前
RAG+ReAct 智能体深度重构|从「固定三步执行」到「动态思考-行动循环」
人工智能·spring boot·redis·后端·ai·重构
蚰蜒螟2 小时前
Spring Boot 与 Tomcat 错误页面处理机制深度解析
spring boot·tomcat
+VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue校园实验室管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
Coder_Boy_2 小时前
基于SpringAI的在线考试系统-核心模块的数据模型交互关系
java·数据库·人工智能·spring boot·交互
We....2 小时前
SpringBoot 微服务拦截器与负载均衡实践
java·spring boot·微服务·负载均衡
CHHC18802 小时前
golang 项目依赖备份
开发语言·后端·golang
Swift社区2 小时前
Spring Boot 配置文件未生效
java·spring boot·后端