第一个Spring Boot项目:helloworld

简介: 本节从简单的helloworld程序开始介绍创建Spring Boot项目的方法和流程,以及Spring Boot项目结构,最后介绍项目中非常重要的pom.xml文件。

第一个Spring Boot项目:helloworld

本节从简单的helloworld程序开始介绍创建Spring Boot项目的方法和流程,以及Spring Boot项目结构,最后介绍项目中非常重要的pom.xml文件。

1.创建Spring Boot项目

有两种方式来构建Spring Boot项目的基础框架:

  • 第一种是使用Spring官网提供的构建页面;
  • 第二种是使用IntelliJ IDEA中的Spring插件。

(1)使用Spring官网提供的构建页面

步骤01 访问Spring官网。

步骤02 选择构建工具为Maven Project,编程语言选择Java,Spring Boot版本为2.7.13,填写项目基本信息,具体如图所示。

1692339647436.png

步骤03 单击Generate创建并下载项目压缩包。

步骤04 解压后,使用IDEA引入项目,选择File→Open File or Project,选择解压后的文件夹,单击OK按钮,项目即可创建完成。

(2)使用IDEA构建

步骤01 选择File→New→Project命令,弹出新建项目的对话框。

步骤02 选择Spring Initializr,单击Next按钮出现配置界面,IDEA已经帮助做了集成。如图所示,IDEA界面中的Group、Artifact等输入框就对应着项目的pom.xml中的groupId、artifactId等配置项。

  • Group:一般输入公司域名,比如百度公司就会输入com.baidu,本次演示输入com.example 。
  • Artifact:可以理解为项目的名称,用户根据实际情况来输入,本次演示输入helloworld。
  • Dependencies:添加项目所依赖的Spring Boot组件,可以多选。

1692339700603.png

填完相关的信息之后,直接单击NEXT按钮来创建项目。

2.项目结构

基本上所有Java项目的结构都大同小异,Spring Boot项目的结构和其他Java项目的结构类似。但是,还是有必要从头讲一讲Spring Boot项目的结构,只有掌握了项目的基本结构,后面开发起来才会更加得心应手。

前面的第一个Spring Boot项目helloworld创建成功之后,接下来用IDEA打开。Spring Boot的基础结构共有3个主要目录,具体如下:

  • src/main/java:程序开发以及主程序目录。
  • src/main/resources:配置文件和资源文件目录。
  • src/test/java:测试程序目录。

从上面我们可以了解到,新建的helloworld项目只有java、resources、test三个基础结构目录。通常,完整的项目包括前台页面、model实体、数据库访问、公共基础类等非常多的文件和目录。

1)java目录下的com.example.myproject为后台java文件的根目录,包括:

  • Application.java:建议放到根目录下,是项目的启动类,注意Spring Boot项目只能有一个main()方法入口。
  • comm:建议放置公共的类,如全局的配置文件、工具类等。
  • model:主要用于实体(Entity)。
  • repository:主要是数据库访问层代码。
  • service:主要是业务类代码。
  • web:负责前台页面访问的Controller路由。

2)resources目录下包括:

  • static:存放Web访问的静态资源,如JS、CSS、图片等。
  • templates:存放页面模板。
  • application.properties:存放项目的配置信息。

3)test目录存放单元测试的代码,目录结构和java目录保持一致。

4)pom.xml用于配置项目依赖包以及其他配置。采用Spring Boot推荐的默认配置可以省掉很多设置。

当然,也可以根据技术规范进行调整。至此,我们的第一个Spring Boot项目就创建完成了。

3.pom.xml详解

Spring Boot项目根目录下的pom.xml文件是Maven项目中非常重要的配置文件。Gradle项目的配置文件是build.gradle,主要描述项目包的依赖和项目构建时的配置。pom.xml配置文件主要分为四部分,下面就来一一介绍pom.xml文件的各个组成部分以及它们的作用。

(1) 项目的描述信息

<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>

上面的配置内容基本是创建项目时定义的有关项目的基本描述信息,其中比较重要的是groupId、artifactId。各个属性说明如下:

  • groupId:项目的包路径。
  • artifactId:项目名称。
  • version:项目版本号。
  • packaging:一般有jar、war两个值,表示使用Maven打包时是构建成JAR包还是WAR包。
  • name:项目名称。
  • description:项目描述。

(2)项目的依赖配置信息

此部分为项目的依赖信息,主要包括Spring Boot的版本信息和第三方组件的版本信息。

项目的依赖信息主要分为parent和dependencies两部分。

parent:配置父级项目的信息。Maven支持项目的父子结构,引入后会默认继承父级的配置。此项目中引入spring-boot-starter-parent定义Spring Boot的基础版本。

dependencies:配置项目所需要的依赖包,Spring Boot体系内的依赖组件不需要填写具体版本号,spring-boot-starter-parent维护了体系内所有依赖包的版本信息。另外,<dependency>标签是Maven项目定义依赖库的重要标签,通过groupId、artifactId等“坐标”信息定义依赖库的路径信息。

(3) 构建时需要的公共变量

    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.6.13</spring-boot.version>
    </properties>

上面配置了项目构建时所使用的编码、输出所使用的编码,最后指定了项目使用的JDK版本。

(4) 构建配置

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>
        <plugins>
</build>

上面配置spring-boot-maven-plugin构建插件,将Spring Boot应用打包为可执行的JAR或WAR文件,然后以简单的方式运行Spring Boot应用。如果需要更改为Docker构建方式,则只要更改此部分即可。

4.第一个helloworld程序

helloworld示例程序演示Spring Boot项目究竟是如何运行的。

步骤01 在目录src\main\java\com\example\helloworld\controller下创建HelloController,然后添加/hello的路由地址和方法,示例代码如下:

@RestController
public class HelloController {
   
   
    @RequestMapping("/hello")
    public String hello() {
   
   
        return "hello word!!!";
    }

在上面的示例中,我们创建了HelloController并创建了一个hello()方法,最后使用@RestController和@RequestMapping注解实现HTTP路由。

1)@RestController表示HelloController为数据处理控制器。Spring Boot中有Controller和RestController两种控制器,都用来表示Spring中某个类是否可以接收HTTP请求,但不同的是:

  • @Controller:返回数据和页面,处理HTTP请求。
  • @RestController:返回客户端数据请求,主要用于RESTful接口。

可以说@RestController是@Controller与@ResponseBody的结合体,因而具有两个标注合并起来的作用。

2)@RequestMapping("/hello")提供路由映射,意思是"/hello"路径的HTTP请求都会被映射到hello()方法上进行处理。

步骤02 运行helloworld程序。

右击项目中的HelloApplication→run命令就可以启动项目。

image.png

通过系统的启动日志可以看到,系统运行在8080端口。如果需要切换到其他端口,可在application.properties配置文件中自行定义。

步骤03 打开浏览器,访问http://localhost:8080/hello地址,查看页面返回的结果。

image.png

访问/hello地址后,后台成功接收到页面请求并返回“hello word!!!”,说明我们的第一个Spring Boot项目运行成功。

相关文章
|
8月前
|
Java Maven Android开发
微服务——SpringBoot使用归纳——Spring Boot开发环境搭建和项目启动
本文介绍了Spring Boot开发环境的搭建和项目启动流程。主要内容包括:jdk的配置(IDEA、STS/eclipse设置方法)、Spring Boot工程的构建方式(IDEA快速构建、官方构建工具start.spring.io使用)、maven配置(本地maven路径与阿里云镜像设置)以及编码配置(IDEA和eclipse中的编码设置)。通过这些步骤,帮助开发者顺利完成Spring Boot项目的初始化和运行准备。
735 0
微服务——SpringBoot使用归纳——Spring Boot开发环境搭建和项目启动
|
7月前
|
前端开发 安全 Java
Spring Boot 便利店销售系统项目分包设计解析
本文深入解析了基于Spring Boot的便利店销售系统分包设计,通过清晰的分层架构(表现层、业务逻辑层、数据访问层等)和模块化设计,提升了代码的可维护性、复用性和扩展性。具体分包结构包括`controller`、`service`、`repository`、`entity`、`dto`、`config`和`util`等模块,职责分明,便于团队协作与功能迭代。该设计为复杂企业级应用开发提供了实践参考。
291 0
|
8月前
|
Java 测试技术 微服务
微服务——SpringBoot使用归纳——Spring Boot中的项目属性配置——少量配置信息的情形
本课主要讲解Spring Boot项目中的属性配置方法。在实际开发中,测试与生产环境的配置往往不同,因此不应将配置信息硬编码在代码中,而应使用配置文件管理,如`application.yml`。例如,在微服务架构下,可通过配置文件设置调用其他服务的地址(如订单服务端口8002),并利用`@Value`注解在代码中读取这些配置值。这种方式使项目更灵活,便于后续修改和维护。
154 0
|
8月前
|
Java 微服务 Spring
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录——使用Logger在项目中打印日志
本文介绍了如何在项目中使用Logger打印日志。通过SLF4J和Logback,可设置不同日志级别(如DEBUG、INFO、WARN、ERROR)并支持占位符输出动态信息。示例代码展示了日志在控制器中的应用,说明了日志配置对问题排查的重要性。附课程源码下载链接供实践参考。
1013 0
|
4月前
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
414 3
|
4月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
238 0
|
4月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
426 0
|
4月前
|
前端开发 Java API
酒店管理系统基于 JavaFX Spring Boot 和 React 经典项目重构实操
本文介绍了基于现代技术栈的酒店管理系统开发方案,整合了JavaFX、Spring Boot和React三大技术框架。系统采用前后端分离架构,JavaFX构建桌面客户端,React开发Web管理界面,Spring Boot提供RESTful API后端服务。核心功能模块包括客房管理和客户预订流程,文中提供了JavaFX实现的客房管理界面代码示例和React开发的预订组件代码,展示了如何实现客房信息展示、添加修改操作以及在线预订功能。
299 1
|
4月前
|
Java 应用服务中间件 Maven
第01课:Spring Boot开发环境搭建和项目启动
第01课:Spring Boot开发环境搭建和项目启动
660 0