JavaEE 进阶第六期:Spring Boot 如何重塑后端开发

专栏:JavaEE 进阶跃迁营
个人主页:手握风云

目录

[一、第一个 Spring Boot 程序](#一、第一个 Spring Boot 程序)

[1.1. Spring Boot 介绍](#1.1. Spring Boot 介绍)

[1.2. Spring Boot 项目创建](#1.2. Spring Boot 项目创建)

[1.3. 项目代码](#1.3. 项目代码)

[1.4. 目录介绍](#1.4. 目录介绍)

[1.5. 启动项目](#1.5. 启动项目)

[1.5. 输出 Hello World](#1.5. 输出 Hello World)


一、第一个 Spring Boot 程序

1.1. Spring Boot 介绍

Spring Boot 是 Spring 生态体系下的核心开发框架,其设计初衷是简化 Spring 程序的开发流程,解决传统 Spring Framework 配置繁琐、入门门槛高的问题,本质上可理解为 "Spring 框架的脚手架"------ 如同盖房子时的脚手架能加速施工,Spring Boot 能让开发者快速搭建并启动 Spring 项目,大幅提升 Java 开发效率。

传统 Spring Framework 虽功能强大,但在实际开发中存在明显短板:配置繁琐、依赖管理复杂、部署麻烦。为解决这些问题,Spring 官方推出 Spring Boot,通过 "约定大于配置" 的设计思想,简化配置、自动集成依赖、内置 Web 服务器,让开发者聚焦业务逻辑而非环境配置。

1.2. Spring Boot 项目创建

我这里使用的是 IDEA 专业版,可以直接创建 Spring Boot。创建新项目的时候,直接点击左侧的 Spring Initializr 就可以创建。

这里我们以Spring Web 为例,创建项目。

创建好之后,这些文件都可以删掉,我们只关心 src 和 pom 文件。

1.3. 项目代码

XML 复制代码
<?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>3.5.7</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>Test11_10_1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Test11_10_1</name>
    <description>Test11_10_1</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-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>
                <version>3.5.7</version>
            </plugin>
        </plugins>
    </build>

</project>

在 pom 文件中,引入了两个依赖:

  1. spring-boot-starter-web:包含了web应用开发所需要的常见依赖
  2. spring-boot-starter-test:包含了单元测试所需要的常见依赖

但是这些依赖我们没有指定版本号,但是 jar 包也正常导入项目中了,并且查看的时候也是有版本号的。这是因为每一个 SpringBoot 工程,都有一个父工程。依赖的版本号,都会在父工程中统一管理。父工程指定版本号后,就会自动引⼊和所指定版本对应的依赖,创建的 SpringBoot 项⽬,会继承 SpringBoot 父⼯程。

1.4. 目录介绍

Spring Boot 项目有两个主要的目录:

  1. src/main/java: Java 源代码
  2. src/main/resources:为静态资源或配置文件
  3. src/test/java:测试代码源代码
  4. target:编译后的文件路径
  5. pom.xml:maven 配置文件

1.5. 启动项目

java 复制代码
package com.yang.test11_10_1;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication // SpringBoot 启动类注解
public class Test11101Application {

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

}

点击启动类的 main 方法就可以运行 Spring Boot 项目了,启动成功如下图所示:

1.5. 输出 Hello World

我们新建一个 HelloController 类:

java 复制代码
package com.yang.test11_10_1;

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

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello() {
        return "hello Spring Boot";
    }
}

写好代码之后,再重新启动项目,接着在浏览器的地址栏输入 http://127.0.0.1:8080/hello,就可以看到我们的输出结果。

相关推荐
学长毕业设计1 小时前
基于SpringBoot的公益基金管理系统(源码+文档+讲解视频)
java·spring boot·后端
东小西1 小时前
【SAA实战】第 3 篇 · 工具调用全攻略:把业务能力交给 Agent 自己调度
java·后端·spring
东小西2 小时前
【SAA实战】第 4 篇 · Agent 短期记忆:saver 让 Agent 跨轮记得住(threadId 隔离)
java·后端·spring
许彰午2 小时前
22-DataCenter报文序列化
java·低代码·架构·状态模式
2601_962065252 小时前
[MySQL] SQL优化之性能分析
java·sql·mysql
小范同学_2 小时前
JDK1.7 与 JDK1.8 HashMap 底层原理对比 + 数组并发扩容死循环详解
java·开发语言
予昊3 小时前
从零实现“在线五子棋对战“:WebSocket 实时通信 + 段位匹配
java·开发语言·网络·websocket
2601_962203513 小时前
【SpringAI入门】初识SpringAI
java
weixin_461408584 小时前
Mybatis-flex小记
java·开发语言·mybatis
2601_962177134 小时前
【MySQL篇】聚合查询,联合查询
android·java·mysql