使用Gradle创建一个最简单的Spring Boot项目

本文介绍如何使用Gradle构建SpringBoot项目,包括环境搭建、项目创建、编译及运行步骤。适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很多刚开始用Gradle的不能运行是因为依赖下载失败,请先看着篇文章: Gradle编译时下载依赖失败解决方法


  • 最近在学习 Spring Boot ,但是由于没有科学上网,导致使用 Gradle 开发时编译特别慢并且经常出错,遇到很多问题,看了很多博客都写的非常零碎和混乱,今天在公司看了一天的官方文档才算是刚刚入门,所以记录一下,希望能对初学者能有所帮助

开发工具及环境

  • JDK 1.7+
    • Spring Boot 要求 JDK 不低于1.6,推荐使用1.8
  • 编译工具 Gradle
    • 安装可以参考我之前写的博客(Gradle环境搭建),或其他很多教程都可以找到
  • 开发工具建议使用IDEA或者 STS(Spring Tool Suite
    • 因为集成度比较高,不需要再单独下载插件,如果使用 Eclipse 或 MyEclipse 需要单独下载 Gradle 和 Spring 插件,并且没有科学上网很容易失败,在这里我们使用 IDEA 作为开发工具

Spring Boot 是什么

  • Spring Boot 是 Spring 社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目。大多数 Spring Boot 项目只需要很少的配置文件。

Spring Boot 特性

  • 创建独立的 Spring 项目
  • 内置 Tomcat 和 Jetty 容器
  • 提供一个 starter POMs 来简化 Maven 配置
  • 提供了一系列大型项目中常见的非功能性特性,如安全、指标,健康检测、外部配置等
  • 完全没有代码生成和 xml 配置文件

Spring Boot 应用快速搭建官方文档


1. 创建一个 Gradle 项目,填入所需要的信息


2. 创建相应的目录

  • 因为 Spring Boot 使用 Gradle 编译,所以有固定的文件结构

  • 目录结构

─src
     build.gradle
    ├─main
    │  ├─java
    │  │      SpringController.java
    │  │
    │  └─resources
    └─test
        ├─java
        └─resources

项目文件结构


3. 创建一个 Controller 类(在 main 文件夹下)

  • SpringController.java
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;

//表明这是一个 Controller
@Controller

//RestController是一种Rest风格的Controller,可以直接返回对象而不返回视图,返回的对象可以使JSON,XML等
//@RestController

//使用自动配置,主动添加并解析bean,配置文件等信息
@EnableAutoConfiguration

public class SpringController {

    //设置访问的url
    @RequestMapping("/")
    //表示返回JSON格式的结果,如果前面使用的是@RestController可以不用写
    @ResponseBody
    String home() {
        return "Hello World!";//返回结果为字符串
    }

    public static void main(String[] args) throws Exception {
        //通过SpringApplication的run()方法启动应用,无需额外的配置其他的文件
        SpringApplication.run(SpringController.class, args);
    }
}

4. 修改 build.gradle 文件

  • build.gradle
  • 默认生成的 Gradle 文件并不能满足编译 Spring Boot 应用,需要手动修改
buildscript {
    repositories {
        mavenCentral()//依赖Maven仓库
    }
    dependencies {
        //使用1.4.2.RELEASE版本的Spring框架
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.2.RELEASE")
    }
}

apply plugin: 'java'
apply plugin: 'spring-boot'

//生成的jar包包名和版本
jar {
    baseName = 'gs-rest-service'
    version =  '0.1.0'
}

repositories {
    mavenCentral()
}

//设置jdk的版本
sourceCompatibility = 1.8
targetCompatibility = 1.8

//添加编译时的依赖
dependencies {
    compile("org.springframework.boot:spring-boot-starter-web")
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

5. 编译项目

  • 在命令行进入到该项目根目录下,输入 gradle build 进行编译
  • 编译的过程中会下载很多的jar包,如果没有科学上网可能会很慢

  • 编译成功后输出build successful

D:\WorkSpace\IntelliJIDEA\springboot>gradle build
The plugin id 'spring-boot' is deprecated. Please use 'org.springframework.boot' instead.
:compileJava                                                                                                               
:processResources UP-TO-DATE
:classes
:findMainClass
:jar
:bootRepackage                                                                                                        
:assemble
:compileTestJava UP-TO-DATE
:processTestResources UP-TO-DATE
:testClasses UP-TO-DATE
:test UP-TO-DATE
:check UP-TO-DATE
:build

BUILD SUCCESSFUL

Total time: 5.807 secs
  • 也可以在左侧的 gradle 中点击刷新按钮,效果是一样的
    编译项目

6. 启动项目

  • 在命令行中输入 gradle bootrun 进行启动项目
  • 也可以使用左侧的 gradle 中 Task 下的 application 中的 bootRun 按钮启动(参照上图)
  • 默认的会启动 tomcat,使用8080端口,如果端口被占用会报错

  • 启动成功后会输出以下内容

D:\WorkSpace\IntelliJIDEA\springboot>gradle bootrun
The plugin id 'spring-boot' is deprecated. Please use 'org.springframework.boot' instead.
:compileJava UP-TO-DATE                                                                                                                                            
:processResources UP-TO-DATE
:classes UP-TO-DATE
:findMainClass
:bootRun                                                     

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.4.2.RELEASE)

2016-11-30 22:14:47.878  INFO 9120 --- [           main] SpringController                         : Starting SpringController on H with PID 9120 (D:\WorkSpace\Intel
liJIDEA\springboot\build\classes\main started by 50185 in D:\WorkSpace\IntelliJIDEA\springboot)
2016-11-30 22:14:47.880  INFO 9120 --- [           main] SpringController                         : No active profile set, falling back to default profiles: default

2016-11-30 22:14:47.911  INFO 9120 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationC
onfigEmbeddedWebApplicationContext@57c758ac: startup date [Wed Nov 30 22:14:47 CST 2016]; root of context hierarchy
2016-11-30 22:14:49.330  INFO 9120 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2016-11-30 22:14:49.343  INFO 9120 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2016-11-30 22:14:49.344  INFO 9120 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.6
2016-11-30 22:14:49.457  INFO 9120 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2016-11-30 22:14:49.458  INFO 9120 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1550 ms
2016-11-30 22:14:49.642  INFO 9120 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]
2016-11-30 22:14:49.647  INFO 9120 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2016-11-30 22:14:49.648  INFO 9120 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2016-11-30 22:14:49.648  INFO 9120 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2016-11-30 22:14:49.648  INFO 9120 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2016-11-30 22:14:49.941  INFO 9120 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.
embedded.AnnotationConfigEmbeddedWebApplicationContext@57c758ac: startup date [Wed Nov 30 22:14:47 CST 2016]; root of context hierarchy
2016-11-30 22:14:50.022  INFO 9120 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto java.lang.String SpringController.home()
2016-11-30 22:14:50.026  INFO 9120 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.Respons
eEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletReque
st)
2016-11-30 22:14:50.026  INFO 9120 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springf
ramework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http
.HttpServletResponse)
2016-11-30 22:14:50.050  INFO 9120 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.sp
ringframework.web.servlet.resource.ResourceHttpRequestHandler]
2016-11-30 22:14:50.050  INFO 9120 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springfram
ework.web.servlet.resource.ResourceHttpRequestHandler]
2016-11-30 22:14:50.088  INFO 9120 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class or
g.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2016-11-30 22:14:50.209  INFO 9120 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2016-11-30 22:14:50.263  INFO 9120 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2016-11-30 22:14:50.267  INFO 9120 --- [           main] SpringController                         : Started SpringController in 2.734 seconds (JVM running for 3.049
)
2016-11-30 22:14:57.820  INFO 9120 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'
2016-11-30 22:14:57.820  INFO 9120 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
2016-11-30 22:14:57.836  INFO 9120 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed i
n 16 ms
> Building 80% > :bootRun

7. 通过浏览器访问该项目

  • 该项目因为配置的路径为根路径,所以直接访问localhost:8080即可
  • 如果想停止运行该项目可以在命令行中按Ctrl+C,输入Y即可停止
    访问项目

  • 至此,一个最简单的 Spring Boot 项目创建完成,想要学习更多的知识可以访问官方的文档
  • 如果遇到 IDEA 中的 Controller 提示没有引入包无法进行代码提示可以点击 Gradle 的刷新按钮,等待编译完成就可以进行后续操作了
<think>好的,我现在需要教用户如何在IntelliJ IDEA 2021.3.2版本中创建一个Spring Boot项目。首先,我得回想一下自己使用IDEA创建项目的步骤,确保每一步都准确无误。可能用户是刚接触IDEA或者Spring Boot的新手,所以需要详细且易懂的指导。 首先,用户需要打开IDEA,所以第一步应该是启动IntelliJ IDEA 2021.3.2。接下来,创建项目,这里可能会涉及到欢迎界面上的“New Project”按钮。需要确认在哪个菜单或界面可以找到这个选项,因为有时候用户可能已经打开了其他项目,这时候“File”菜单里的“New”->“Project”会更可靠。 然后,选择项目类型。Spring Initializr是创建Spring Boot项目的标准方式,所以这里需要引导用户选择正确的选项。可能需要指出Maven和Gradle的区别,但用户可能不清楚两者的差异,所以简单建议使用默认的Maven即可,除非有特殊需求。 接下来是项目元数据的配置,包括Group、Artifact、Java版本等。这里需要解释每个字段的作用,比如Group通常是公司或组织的域名反转,Artifact是项目名称。Java版本选择8或11比较常见,但也要根据用户的环境来建议。同时,要确保用户正确选择Spring Boot的版本,建议使用较新的稳定版,比如2.7.x或3.x,但要确认IDEA 2021.3.2支持的版本,避免兼容性问题。 添加依赖的部分可能比较复杂,用户可能需要知道常用的依赖,比如Spring Web、Spring Data JPA等。需要举例说明如何搜索并添加这些依赖,同时提醒用户根据项目需求选择,避免不必要的依赖。 项目名称和位置的设置相对简单,但要确保用户正确指定项目保存的路径,避免找不到项目文件的问题。最后生成项目后,可能需要指导用户等待依赖下载完成,并检查项目结构是否正确,比如是否有src/main/java目录和主启动类。 创建完成后,建议用户编写一个简单的Controller来测试项目是否运行正常。这部分需要给出示例代码,并说明如何运行应用程序,以及如何通过浏览器访问测试接口。同时,提醒用户常见的错误,比如端口冲突或依赖缺失,以及如何解决这些问题。 在思考过程中,还需要注意IDEA不同版本之间可能的界面差异,确保步骤适用于2021.3.2版本。此外,用户可能遇到的问题包括网络问题导致依赖下载失败,或者配置错误导致项目无法启动,需要提前给出解决建议。例如,检查Maven配置是否正确,或者更换为阿里云的镜像仓库加速下载。 最后,确保整个流程逻辑清晰,步骤分解细致,用户能够一步步跟随操作,不会遗漏任何关键点。同时,使用简洁明了的中文表达,避免技术术语过于晦涩,必要时进行解释,比如解释什么是Spring Initializr,以及为什么选择Maven等。</think>以下是使用 IntelliJ IDEA 2021.3.2 创建 Spring Boot 项目的详细步骤: --- ### **步骤 1:启动 IDEA 并创建项目** 1. 打开 IntelliJ IDEA,在欢迎界面点击 **New Project** (若已打开其他项目,通过菜单栏 **File > New > Project**) --- ### **步骤 2:选择 Spring Initializr** 1. 在左侧菜单中选择 **Spring Initializr** ![选择 Spring Initializr](https://via.placeholder.com/300x200?text=Select+Spring+Initializr) 2. 确保 **Project SDK** 已正确选择你的 Java 版本(推荐 Java 8/11/17) 3. 点击 **Next** --- ### **步骤 3:配置项目元数据** 填写以下信息(示例值): - **Group**: `com.example` - **Artifact**: `demo` - **Type**: 保持默认的 **Maven**(推荐) - **Java Version**: 选择与 SDK 一致的版本(如 8/11) - **Spring Boot**: 选择稳定版本(如 2.7.x 或 3.0.x) ![元数据配置](https://via.placeholder.com/300x200?text=Project+Metadata) 点击 **Next**。 --- ### **步骤 4:添加依赖** 1. 在 **Dependencies** 界面搜索并勾选所需依赖: - **Spring Web**(必选,用于构建 Web 应用) - **Spring Data JPA**(可选,数据库操作) - **Lombok**(可选,简化代码) ![添加依赖](https://via.placeholder.com/300x200?text=Add+Dependencies) 2. 点击 **Next**。 --- ### **步骤 5:设置项目名称和位置** 1. 输入 **Project Name**(默认与 Artifact 一致) 2. 选择项目存储路径(建议使用纯英文路径) 3. 点击 **Finish** 生成项目。 --- ### **步骤 6:等待项目初始化** 1. IDEA 会自动下载依赖(需联网),时间取决于网络速度。 2. 完成后,项目结构应包含: - `src/main/java`(主代码目录) - `src/main/resources`(配置文件目录) - `pom.xml`(Maven 依赖配置文件) --- ### **步骤 7:编写测试代码** 1. 在 `src/main/java` 下创建 Controller 类: ```java package com.example.demo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class DemoController { @GetMapping("/hello") public String hello() { return "Hello, Spring Boot!"; } } ``` --- ### **步骤 8:运行项目** 1. 打开主启动类 `DemoApplication.java` 2. 点击类旁的绿色箭头 ▶️ 选择 **Run 'DemoApplication'** 3. 控制台显示 `Tomcat started on port(s): 8080` 表示启动成功。 --- ### **步骤 9:验证结果** 1. 浏览器访问 [http://localhost:8080/hello](http://localhost:8080/hello) 2. 若看到 `Hello, Spring Boot!` 说明项目创建成功。 --- ### **常见问题解决** 1. **依赖下载失败**: - 检查 Maven 配置(File > Settings > Build > Build Tools > Maven) - 尝试更换阿里云镜像仓库(修改 `pom.xml` 或 `settings.xml`) 2. **端口冲突**: - 在 `src/main/resources/application.properties` 中添加: ```properties server.port=8081 ``` --- 通过以上步骤,即可在 IDEA 2021.3.2 中快速创建并运行 Spring Boot 项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值