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

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

相关推荐
消失的旧时光-194319 分钟前
Spring Boot 工程化进阶:统一返回 + 全局异常 + AOP 通用工具包
java·spring boot·后端·aop·自定义注解
NE_STOP28 分钟前
Redis--发布订阅命令和Redis事务
java
PAC_3Dame32 分钟前
记一次真实的线上OOM
java
SunnyDays10111 小时前
如何在Java中将Word文档转换为图像(JPEG、PNG或SVG)
java
追风筝的人er1 小时前
SpringBoot+Vue3 企业考勤如何处理法定假期?节假日方案、调休补班与工作日判断链路拆解
前端·vue.js·后端
Lumos_7771 小时前
Linux -- 线程
java·jvm·算法
知兀1 小时前
【MybatisPlus】后端用枚举类,数据库用tinyint,存在枚举类型转换
java
StockTV1 小时前
印度股票实时数据 NSE和BSE的实时行情、K 线及指数数据
java·开发语言·spring boot·python
User_芊芊君子1 小时前
【OpenAI 把 AI 玩明白了】:自主推理 + 动态知识图谱,这 4 个技术突破要颠覆行业
java·人工智能·知识图谱