Springboot基础篇01-创建一个SpringBoot项目

Springboot和jdk的版本关系对应

  • Spring Boot 2.x
    要求 Java 8 或更高版本(最低 Java 8)
    支持 Java 8、11、17、18、19
    Spring Boot 2.7.x 是 2.x 的最后一个分支(维护到 2023年11月)
  • Spring Boot 3.x
    要求 Java 17 或更高版本(最低 Java 17)
    支持 Java 17、18、19、20、21
    不兼容 Java 8、11

创建一个maven项目

  • 项目结构:

  • 默认生成的pom.xml

    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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.qi</groupId>
        <artifactId>demo1</artifactId>
        <version>1.0</version>
    
        <properties>
            <maven.compiler.source>8</maven.compiler.source>
            <maven.compiler.target>8</maven.compiler.target>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
    </project>
    • project标签:是我们的项目标签,即根标签

    • modelVersion:固定的。XML的模式版本,是 Maven 2 和 Maven 3 使用的标准版本。每个 Maven pom.xml 文件必须以此开头

    • groupId和artifactId:两个加起来,表示这个项目

    • version:项目版本号

    • properties:自定义变量区域

      • maven.compiler.source:指定源代码使用 Java 8 语法
      • maven.compiler.target:指定生成的字节码兼容 Java 8 JVM
    • 如果是SpringBoot3.x,则最低jdk17

      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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>	
          <properties>
              <maven.compiler.source>17</maven.compiler.source>
              <maven.compiler.target>17</maven.compiler.target>
              <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
          </properties>
      </project>

引入SpringBoot

  • 第一种方式,继承

    直接设置Springboot为父项目,在pom.xml中直接写入

    xml 复制代码
    <!-- (project标签内) -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.15</version>
        <relativePath />
    </parent>

    此时这个项目就是一个Springboot项目了

    • 如果是SpringBoot3.x

      xml 复制代码
      <parent>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-parent</artifactId>
          <version>3.4.3</version>
          <relativePath/>
      </parent>
  • 第二种方式,自行管理

    xml 复制代码
    <!-- (project标签内) -->
    <dependencyManagement>
        <dependencies>
            <!-- 引入 Spring Boot BOM -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.5.15</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    dependencyManagement:依赖管理。仅仅声明依赖及其版本,但不实际引入

    • SpringBoot3.x也一样,替换版本号即可

      xml 复制代码
      <dependencyManagement>
          <dependencies>
              <!-- 引入 Spring Boot BOM -->
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-dependencies</artifactId>
                  <version>3.4.3</version>
                  <type>pom</type>
                  <scope>import</scope>
              </dependency>
          </dependencies>
      </dependencyManagement>
  • 不管用哪种方式成为Springboot项目,之后都必须引入Springboot核心依赖

    xml 复制代码
    <!-- (project标签内) -->
    <dependencies>
    	<!-- SpringBoot 核心包 -->
    	<dependency>
    	    <groupId>org.springframework.boot</groupId>
    	    <artifactId>spring-boot-starter</artifactId>
    	</dependency>
    </dependencies>

    由于本身是Springboot项目,所有无需手动指定具体版本,有Springboot默认的稳定版本。

  • 创建启动类:Application

    java 复制代码
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class Application
    {
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
            System.out.println("----------------项目启动成功----------------");
        }
    }

    @SpringBootApplication详解//todo

  • 此时便可执行main方法,得到结果

    程序执行完成之后就会自动结束,那是因为主线程没有需要保持运行的程序。

    可以为其添加需要持续运行的程序,例如:Web容器

SpringWeb容器

  • 引入SpringWeb容器

    xml 复制代码
    <!-- SpringBoot Web容器 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  • 创建一个测试接口类

    这个类我们取名叫做:DemoController

    这个类所在的包,必须在主程序Application同级的目录下,这样才会自动扫描到:

  • DemoController

    java 复制代码
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RequestMapping("/demoServer")
    @RestController
    public class DemoController {
    
        @GetMapping("/get")
        public String getDemo(){
            return "demo_server!";
        }
    
    }

    @RequestMapping详解//todo

    @GetMapping详解//todo

  • 此时启动项目,程序运行的默认端口为:8080

    打开浏览器,输入:http://127.0.0.1:8080/demoServer/get

    此时会调用我们刚才写的接口,并拿到结果:

相关推荐
silvamux_11 分钟前
Spring Boot 调用大模型 api 最小可跑教程
java·spring boot·后端
今年下半年14 分钟前
【Spring Boot 】通过 OpenFeign 请求第三方接口
java·spring boot·后端·openfeign
范什么特西23 分钟前
亲和路由(inspect)
java
她说可以呀25 分钟前
Docker 镜像的两种创建方式
java·分布式·docker
霸道流氓气质35 分钟前
AgentFlow 入门与实战:Task-Based 并发、EWMA 动态调度与四道门禁的 Java 生产级编排
java·开发语言
UrbanJazzerati1 小时前
AutoHotkey v2 零基础快速入门 Part 3 像素亮度检测完全指南
后端
浮链序1 小时前
Shopify 把 10 亿商品开放给任意 agent 了:我用零依赖 Python 撸了个带预算闸门的代购网关
后端·代码规范
愿得一猪蹄1 小时前
# Java线程池实战,别再new Thread了
java
ee又momo1 小时前
# 深入理解Java注解,从使用到自定义
java
Qlly1 小时前
全栈工程师怎么接需求?从一句「加个功能」聊到能开发、能验收
前端·后端