第一章 Spring Boot快速⼊⻔ —— 构建Spring Boot项目

ops/2024/11/20 16:09:03/

概览:

        SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置,可以更加快速便捷地开发Spring项目,在开发过程当中可以专注于应用程序本身的功能开发,而无需在Spring配置上花太大的工夫。

  1. 简化开发:SpringBoot通过设计大量的自动化配置,减少了Spring原有样板化的配置,使得开发者可以快速构建应用。它提供了丰富的Spring模块化支持,可以帮助开发者更轻松快捷地构建出企业级应用。
  2. 提高开发效率:SpringBoot通过一系列Starter pom定义,整合各项功能及框架时,不需要在Maven的pom.xml中维护那些错综复杂的依赖关系,而是通过类似模块化的Starter模块定义来引用,使得依赖管理工作变得更加简单。同时,SpringBoot使用注解方式进行配置,减少了配置文件的使用,如XML配置,进一步提高了开发效率。
  3. 支持微服务架构:SpringBoot支持微服务架构,可以通过SpringCloud进行微服务的开发和管理。这使得SpringBoot在构建大型、分布式系统时具有显著优势。
  4. 独立运行:SpringBoot内嵌了多种服务器(如Tomcat、Jetty等),使得SpringBoot应用可以独立运行,无需外部服务器支持。这简化了应用的部署和运行过程。
  5. 外部化配置:SpringBoot支持多种配置方式,包括properties、YAML等,可以实现外部化配置,方便应用的配置管理。
  6. 强大的插件支持:SpringBoot提供了丰富的插件支持,可以集成各种第三方插件,扩展应用的功能。
  7. 应用监控:SpringBoot提供了准生产级的应用监控功能,可以通过SSH、HTTP、Telnet等方式对服务器运行的项目进行监控,确保应用的稳定性和可靠性。

总的来说,SpringBoot以其简化开发、提高开发效率、支持微服务架构、独立运行、外部化配置、强大的插件支持以及应用监控等特性,成为了现代Java应用开发中不可或缺的工具。

一:构建Spring Boot⼯程

        创建的⽅式多种多样,可以通过Maven来⼿⼯构建或是通过脚⼿架等⽅式快速搭建,也可以通过Spring Initializr⻚⾯⼯具来创建。本⽂使用常用的方式构建Intellij嵌⼊的Spring Initializr⼯具,快速的构建出基础的SpringBoot⼯程。

  • 菜单栏中选择File -> New -> Project,其中Service Url指向的地址就是Spring官方提供的Spring Initializr.工具地址,所l以这里创建的工程实际上也是基于它的Web工具来实现的。 

  • 看到如下图所示的⼯程信息窗⼝,在这⾥可以编辑要创建的⼯程信息。其中, Type 可以改变我们要构建的⼯程类型,⽐如:Maven、 Gradle; Language 可以选择:JavaGroovyKotlin;

  • 点击 Next ,进⼊选择Spring Boot版本和依赖管理的窗⼝。在这⾥值的我们关注的是,它不仅包 含了Spring Boot Starter poms中的各个依赖,还包含了Spring Cloud的各种依赖。

  •  这里选择版本,以及web组件,快速构建一个web项目,点击 Finish 完成⼯程的构建。

⼆、HelloSpringboot详解

构建项目完成

 1..启动应⽤类

只需加⼊⼀个 Spring Boot 启动⽗依赖即可。

代码如下:

java">import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;// Spring Boot应⽤启动类
@SpringBootApplication
public class HelloSpringbootApplication {public static void main(String[] args) {SpringApplication.run(HelloSpringbootApplication.class, args);}}
1.@SpringBootApplication Spring Boot 应⽤的标识。
2. Application 很简单,⼀个 main 函数作为主⼊⼝。SpringApplication 引导应⽤,并将 Application 本身作为参数传递给 run ⽅法。具体 run ⽅法会启动嵌 ⼊式的Tomcat 并初始化 Spring 环境及其各 Spring 组件。

2.启动运⾏

  • a.运行这个main方法。

  • b.控制台打印启动成功。

日志如下:

java">  .   ____          _            __ _ _/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/  ___)| |_)| | | | | || (_| |  ) ) ) )'  |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot ::                (v3.3.5)2024-11-16T22:12:35.512+08:00  INFO 9012 --- [           main] c.b.h.HelloSpringbootApplication         : Starting HelloSpringbootApplication using Java 17.0.2 with PID 9012 (F:\das-parent-master\springboot-project\hello-springboot\target\classes started by DELL in F:\das-parent-master\springboot-project\hello-springboot)
2024-11-16T22:12:35.517+08:00  INFO 9012 --- [           main] c.b.h.HelloSpringbootApplication         : No active profile set, falling back to 1 default profile: "default"
2024-11-16T22:12:36.625+08:00  INFO 9012 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 8080 (http)
2024-11-16T22:12:36.683+08:00  INFO 9012 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2024-11-16T22:12:36.684+08:00  INFO 9012 --- [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.31]
2024-11-16T22:12:36.751+08:00  INFO 9012 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2024-11-16T22:12:36.753+08:00  INFO 9012 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1175 ms
2024-11-16T22:12:37.213+08:00  INFO 9012 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 8080 (http) with context path '/'
2024-11-16T22:12:37.228+08:00  INFO 9012 --- [           main] c.b.h.HelloSpringbootApplication         : Started HelloSpringbootApplication in 2.264 seconds (process running for 4.224)

3.Controller

java">package com.boot.hellospringboot.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@GetMapping("/test")public String tets(){return "hello spring boot";}
}
@RestController,@RequestMapping注解是来⾃ SpringMVC 的注解
@RestController :提供实现了 REST API ,可以服务 JSON,XML 或者其他。这⾥是以 String
形式渲染出结果。 
@RequestMapping :提供路由信息, "/test“ 路径的HTTP Request都会被映射到 test ⽅法进⾏处理。
  • a.启动成功

访问 http://localhost:8080/hello 即可打印 hello spring boot!

  • b.修改默认端口号

上方日志显示服务器端口等信息,默认是 8080 ,可以在 application.properties 配置文件
中修改默认端口号8001,重新启动。
java">#修改端口
server.port=8001

4.pom.xml依赖讲解

java"><!-- Spring Boot 版本依赖 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.5</version><relativePath/></parent><groupId>com.boot</groupId><artifactId>hello-springboot</artifactId><version>0.0.1-SNAPSHOT</version><name>hello-springboot</name><description>Demo project for Spring Boot</description><properties><java.version>17</java.version></properties><dependencies><!-- Spring Boot web依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 测试依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

a. 父项目(版本控制中心)

java">    <!-- Spring Boot 版本依赖 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.5</version><relativePath/></parent>
可以看成一个版本控制中心,我们所配置的依赖不需要说明版本,因为版本控制中心
已经说明了。

b.Web模块相关依赖

java"> <!-- Spring Boot web依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

c.单元测试依赖

java">      <!-- 测试依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>

d.打包插件

将应用打包成一个可执行 Jar 包,直接使用 java -jar xxxx 的命令来执行。
java"><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

5.test目录

        在Spring Boot项目中,test目录扮演着至关重要的角色。这个目录专门用于存放测试代码和资源,以确保项目的代码质量和稳定性。通过编写和管理测试代码和资源,开发者可以及时发现并修复潜在的问题,从而降低发布风险并提高项目的可靠性。

以下是关于Spring Boot项目中test目录作用的详细解释:

  • Java测试代码test/java子目录用于存放测试Java代码。这些代码通常包括单元测试、集成测试等,用于验证项目的各个部分是否按预期工作。
  • 测试资源文件test/resources子目录用于存放测试资源文件,如测试配置文件、测试数据等。这些资源文件在测试过程中被加载和使用,以支持测试代码的执行。
  • 单元测试:在Spring Boot项目中,开发者可以编写单元测试来验证单个类或方法的行为。这些测试通常使用JUnit等测试框架来实现,确保代码的正确性和稳定性。
  • 集成测试:集成测试用于验证多个组件或服务之间的交互是否正常。在Spring Boot项目中,可以使用@SpringBootTest注解来启动Spring Boot应用程序上下文,从而进行集成测试。
  • 测试运行:Spring Boot项目支持使用Maven或Gradle等构建工具来运行测试。开发者只需在项目的根目录下执行相应的命令(如mvn test./gradlew test),构建工具就会扫描src/test/java/目录下的测试类,并执行其中的测试方法。
  • 测试管理:通过Maven或Gradle等构建工具,开发者可以方便地管理测试依赖、配置测试插件、生成测试报告等。这些功能有助于提升测试效率和质量。
  • 测试注解:使用@Test注解来标记测试方法,使用@SpringBootTest注解来加载Spring Boot应用程序上下文(适用于集成测试)。

小结:

        本节主要讲解快速创建springboot项目,web依赖,主启动类SpringBootApplication注解标识Spring Boot 应⽤,main()方法启动,test目录的作用,下一节对配置文件进行一个讲解。


http://www.ppmy.cn/ops/135270.html

相关文章

Java 腾讯云短信发送

首先引用sdk&#xff1a; <!-- 腾讯短信sdk --><dependency><groupId>com.tencentcloudapi</groupId><artifactId>tencentcloud-sdk-java</artifactId><version>3.1.270</version></dependency> 短信发送工具类&#x…

大模型时代,呼叫中心的呼入机器人系统如何建设?

大模型时代&#xff0c;呼叫中心的呼入机器人系统如何建设&#xff1f; 作者&#xff1a;开源呼叫中心系统 FreeIPCC&#xff0c;Github地址&#xff1a;https://github.com/lihaiya/freeipcc 呼叫中心呼入机器人系统的建设是一个涉及多个环节和领域的综合性工程。以下是一个详…

基于51单片机的电子钟+秒表LCD1602仿真设计

电子钟秒表 0. 设计资料内容清单&&下载链接1. 主要功能&#xff1a;2. 讲解视频&#xff1a;3. 仿真4. 程序代码5. 设计报告6. 原理图 基于51单片机的电子钟秒表LCD1602仿真设计( proteus仿真程序设计报告原理图讲解视频&#xff09; 仿真图proteus7.8及以上 程序编译…

ES操作命令

1.查看索引 curl -XGET "http://localhost:9200/_cat/indices?v" 2.删除索引 curl -X DELETE "http://127.0.0.1:9200/indexName" 3.ES最大聚合参数设置 index.max_result_window的默认值通常是10000&#xff0c;如果你需要返回更多结果&#xff0c;…

基于YOLOv8深度学习的智慧交通事故评级检测系统研究与实现(PyQt5界面+数据集+训练代码)

本文研究并实现了一种基于YOLOv8深度学习模型的智慧交通事故评级检测系统&#xff0c;旨在解决传统交通事故检测过程中效率低、误报率高等问题。该系统通过深度学习技术的应用&#xff0c;结合交通事故图像的分析&#xff0c;能够实现对事故的精准识别和评级&#xff0c;进而为…

git push时报错! [rejected] master -> master (fetch first)error: ...

错误描述&#xff1a;在我向远程仓库push代码时&#xff0c;即执行 git push origin master命令时发生的错误。直接上错误截图。 错误截图 错误原因&#xff1a; 在网上查了许多资料&#xff0c;是因为Git仓库中已经有一部分代码&#xff0c;它不允许你直接把你的代码覆盖上去…

Jenkins + gitee 自动触发项目拉取部署(Webhook配置)

目录 前言 Generic Webhook Trigger 插件 下载插件 ​编辑 配置WebHook 生成tocken 总结 前言 前文简单介绍了Jenkins环境搭建&#xff0c;本文主要来介绍一下如何使用 WebHook 触发自动拉取构建项目&#xff1b; Generic Webhook Trigger 插件 实现代码推送后&#xff0c;触…

【Linux】用户和用户组管理

管理用户 1&#xff0e;添加用户账号——useradd命令 【实例2-1-1】 按系统默认配置添加指定用户账号st和stu。 # 添加用户账号st [rootlocalhost ~]# useradd st # 添加用户账号stu [rootlocalhost ~]# useradd stu【实例2-1-2】添加用户账号stu01&#xff0c;UID为1004&am…