Skip to content

Latest commit

 

History

History
229 lines (167 loc) · 6.98 KB

README.md

File metadata and controls

229 lines (167 loc) · 6.98 KB

第一个 Spring Boot 项目

可通过以下方式创建 Spring Boot 项目:

  1. 在线网站:导出压缩包后导入 IDEA
  2. IDEA:集成在线网站或从零构建
    • 基于 Spring Initializr
    • 基于 Maven 构建
    • 基于 Gradle 构建

在线网站创建

Spring 官方:https://start.spring.io

start.spring.io

Aliyunhttps://start.aliyun.com

start.aliyun.com

填写相关配置,选择所需依赖,点击下载即可。

IDEA 构建

基于 Spring Initializr

Spring Initializr

spring-initializr

修改 Server URL 即可修改在线地址。点击 Next 可进入下一步:

start.spring.io

spring-initializr-next

start.aliyun.com

aliyun-initializr-next

选择所需依赖后点击 Finish 即可。

基于 Maven 创建

基于 Maven 从零构建 Spring Boot 项目。

创建 Maven 空模板项目:

maven-module

点击 Next 填写相关信息:

maven-module-next

点击 Finish 完成。创建好的项目工程结构如下:

maven-module-dir-struct

可以看到是非常干净的 Maven 项目结构。打开 pom.xml 文件添加 Spring Boot 的依赖,这里有两种方式:

方式一:使用 parent 标签继承 spring-boot-starter-parent

完整 pom 如下:

<?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">
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>xuejian-helloworld</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

方式二:使用预定义依赖标签dependencyManagement引入spring-boot-dependencies

完整pom如下:

<?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">
    <parent>
        <groupId>io.github.llnancy</groupId>
        <artifactId>xuejian-parent</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>xuejian-helloworld</artifactId>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${springboot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

使用预定义依赖后,在 dependencies 标签中引入依赖无需指定版本号,较为优雅。

基于 Gradle

在线网站或 Spring Initializr 方式均可选择构建系统为 Gradle

编写启动类

创建 Spring Boot 启动类 io.github.llnancy.xuejian.helloworld.XueJianHelloWorldApplication.java,编写代码如下:

package io.github.llnancy.xuejian.helloworld;

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

/**
 * hello world 项目启动类
 *
 * @author sunchaser [email protected]
 * @since JDK8 2022/3/6
 */
@SpringBootApplication
public class XueJianHelloWorldApplication {
    
    public static void main(String[] args) {
        SpringApplication.run(XueJianHelloWorldApplication.class, args);
    }
}

main 方法中还可使用建造者模式启动 Spring Boot,代码如下:

package io.github.llnancy.xuejian.helloworld;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;

/**
 * hello world 项目启动类
 *
 * @author sunchaser [email protected]
 * @since JDK8 2022/3/6
 */
@SpringBootApplication
public class XueJianHelloWorldApplication {
    
    public static void main(String[] args) {
        // SpringApplication.run(XueJianHelloWorldApplication.class, args);
        new SpringApplicationBuilder(XueJianHelloWorldApplication.class)
                .web(WebApplicationType.SERVLET)
                .run(args);
    }
}

编写 Controller

创建 io.github.llnancy.xuejian.helloworld.controller.HelloController.java 类,编写代码如下:

package io.github.llnancy.xuejian.helloworld.controller;

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

/**
 * Hello Controller
 * 
 * @author sunchaser [email protected]
 * @since JDK8 2022/3/6
 */
@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello Spring Boot";
    }
}

启动 Spring Boot

运行 XueJianHelloWorldApplication#main 方法,访问 http://localhost:8080/hello

完整代码可查看 Github