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 分钟前
Java基于微信小程序的食堂线上预约点餐系统【附源码、文档说明】
java·微信小程序·食堂线上预约点餐系统小程序·食堂线上预约点餐微信小程序·java食堂线上预约点餐小程序·食堂线上预约点餐小程序·食堂线上预约点餐系统微信小程序
无心水1 小时前
【分布式利器:腾讯TSF】10、TSF故障排查与架构评审实战:Java架构师从救火到防火的生产哲学
java·人工智能·分布式·架构·限流·分布式利器·腾讯tsf
一 乐8 小时前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
Boilermaker19928 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
Cherry的跨界思维8 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
alonewolf_999 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
一嘴一个橘子9 小时前
spring-aop 的 基础使用(啥是增强类、切点、切面)- 2
java
sheji34169 小时前
【开题答辩全过程】以 中医药文化科普系统为例,包含答辩的问题和答案
java
恋爱绝缘体110 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wszy180910 小时前
新文章标签:让用户一眼发现最新内容
java·python·harmonyos