bus365

为什么都喜欢采用 Spring Boot 来开发软件系统?

📅 2025-11-04 14:24:47 👤 admin 👁️ 4033 ❤️ 62
为什么都喜欢采用 Spring Boot 来开发软件系统?

一、故事背景熟悉企业级开发框架的同学,对 SpringBoot 可能并不陌生,它是一款非常优秀的开箱即用的开发框架,开发者可以使用它来快速的构建一个可独立运行的 Java 应用程序。

尤其是在分布式领域,SpringBoot 通常用于快速构建微服务应用。

SpringBoot 之所以如此的流行,主要在于它能帮助开发者预组装 Spring 的一系列组件,同时通过简化配置的方式,进一步的帮忙开发者减轻了基于 Spring 的应用程序的搭建和开发难度。

SpringBoot 和 Spring 的关系,就好比整车和零部件的关系,Spring 相当于发动机、底盘、汽车外壳等零部件,但是要想上路,还得自己动手拼装,配置很繁琐;而 SpringBoot 相当于帮我们预装了一辆汽车,各零部件还是 Spring 提供的,用户可以直接开车上路。

由此可见,两者并非取代关系,如果想要深度掌握 SpringBoot,了解 Spring 也同样至关重要。

SpringBoot 和 Spring 的版本关系,可以用如下内容来概括。

版本Spring Boot 1.xSpring Boot 2.xSpring Boot 3.xSpring版本Spring 4.xSpring 5.xSpring 6.xJDK版本>= 7>= 8>= 17Tomcat版本8.x9.x10.xAnnotation包javax.annotationjavax.annotationjakarta.annotationServlet包javax.servletjavax.servletjakarta.servletJMS包javax.jmsjavax.jmsjakarta.jmsJavaMail包javax.mailjavax.mailjakarta.mail不同的版本,对系统环境的要求是不一样的,如果出现不兼容的现象,请确保系统环境满足最低要求。

二、快速入门下面我们以创建一个 SpringBoot 应用为例,并实现一个简单的 Http 请求处理。通过这个例子,一起来体验一下 SpringBoot 中开箱即用的特性。

快速创建 SpringBoot 项目,通常有两种方式:

第一种:使用 Spring Initializr 页面快速创建第二种:手动创建下面我们一起来看看。

2.1、使用 Spring Initializr 页面创建Spring Initializr 是 Spring 官方提供一个快速创建 SpringBoot 应用的便捷工具。

使用方式很简单,访问https://start.spring.io/地址,我们会看到如下界面。

填写相应的信息,最后点击Generate按钮,即可快速导出一个 SpringBoot 工程文件。

也可以点击Explore按钮,查看生成的文件目录结构。

从图中可以看出,Spring Boot 的基础结构共三个文件。

src/main/java:程序开发以及主程序入口src/main/resources:配置文件src/test/java:测试程序将文件导入到IntelliJ IDEA中,运行SpringbootHelloApplication的main方法,即可启动服务。

这种创建方式,虽然很快速但是不够灵活,通常采用的是官方最新版本,如果当前环境不满足要求,比如当前系统环境 JDK 版本为 8,可能服务无法运行哦。

2.2、手动创建手动构建项目是最常用的一种方式,以IntelliJ IDEA为例,构建步骤如下。

2.2.1、创建一个 maven 项目打开 IntelliJ IDEA,在菜单栏中选择File => New => Project..,我们可以看到如下图所示的窗口。

选择Maven,然后点击Next。

填写相关的工程信息之后,继续点击Next,直到Finish,此时 Maven 项目创建完成。

2.2.2、添加 SpringBoot 依赖包根据上文的版本对应关系,如果当前系统环境 JDK 版本为 8, SpringBoot 的适配版本为2.x,如果你当前系统环境 JDK 版本也是8,可以采用2.1.0.RELEASE版本来构建项目。

打开pom.xml文件,添加 SpringBoot 相关依赖包,内容如下。

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">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.1.0.RELEASE

com.example

springboot-hello

1.0-SNAPSHOT

org.springframework.boot

spring-boot-starter

org.springframework.boot

spring-boot-starter-test

test

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-maven-plugin

2.2.3、创建配置文件在src/main/resources目录下,创建一个application.properties全局配置文件,内容如下:

spring.application.name=springboot-hello2.2.4、编写服务启动类在src/main/java目录下,创建一个服务启动类Application,包名为com.example.springboot,代码如下。

package com.example.springboot;

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);

}

}2.2.5、编写一个HTTP接口在src/main/java目录下,创建一个 http 接口,包名为com.example.springboot.web,代码如下。

package com.example.springboot.web;

import org.springframework.web.bind.annotation.RequestMapping;

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

@RestController

public class HelloController {

@RequestMapping("/hello")

public String index() {

return "Hello World!";

}

}2.2.6、启动服务测试最后运行Application类,即可启动 SpringBoot 应用程序,服务日志如下。

在浏览器中输入http://localhost:8080/hello,可以看到页面返回:Hello World!

2.2.7、编写单元测试用例在src/test/java目录下,可以编写一个单元测试来模拟 http 请求,创建一个ApplicationTests单元测试类,包名为com.example.springboot,代码如下。

package com.example.springboot;

import static org.hamcrest.Matchers.equalTo;

import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;

import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

@RunWith(SpringRunner.class)

@SpringBootTest

public class ApplicationTests {

private MockMvc mvc;

@Before

public void setUp() throws Exception {

mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();

}

@Test

public void getHello() throws Exception {

mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))

.andExpect(status().isOk())

.andExpect(content().string(equalTo("Hello World!")));

}

}至此,通过 Maven 构建一个 SpringBoot 项目基本完成,整个工程目录结构如下:

三、小结可以发现,使用 Spring Boot 可以非常方便、快速的搭建 web 项目,开发者不用关心框架之间的兼容性、版本号等问题,任何你想要的组件,只需要添加一下依赖包即可,真正做到了开箱即用的效果。

打开 Maven Project 工程中的 Dependencies 按钮,可以看到 SpringBoot 项目中的依赖包如下。

当添加 SpringBoot 相关依赖包时, Maven 会自动从中央仓库拉取相关组件,然后打包到工程中。SpringBoot 相当于一个框架的管理者,默认整合了很多框架的使用方式,开发者要使用某个框架时,只需要配置一下即可。

另外需要注意的地方是:SpringBootApplication注解默认扫描当前包下的相关类,如果把HelloController类所在的包移动到 com.example.springboot包之外是无法被扫描到,会导致请求出错,例如如下这种结构。

com

+- example

+- springboot

+- Application.java

+- web

| +- HelloController.java

|面对这种情况,可以在SpringBootApplication注解下,新增一个扫包注解,自定义扫描包的路径,例如如下方式。

@SpringBootApplication

@ComponentScan(basePackages="com.example")

public class Application {

public static void main(String[] args) {

SpringApplication.run(Application.class, args);

}

}在实际的开发过程中,通常建议按照推荐的方式来划分包目录,将SpringBootApplication注解所在的位置放在最顶层,例如如下官方推荐的结构。

com

+- example

+- myproject

+- Application.java

|

+- customer

| +- Customer.java

| +- CustomerController.java

| +- CustomerService.java

| +- CustomerDao.java

|

+- order

+- Order.java

+- OrderController.java

+- OrderService.java

+- OrderDao.java关于 Spring Boot 更多的 web 开发用法,我们在下篇文章中再给大家介绍。

四、参考1、spring官网

作者:潘志的技术笔记

出处:https://pzblog.cn/

版权归作者所有,转载请注明出处

微信扫描二维码,关注志哥的技术笔记,精选干货及时推送

上一则传输
中国扭蛋机行业发展历程、市场现状及未来趋势预测报告(2025版)
下一则传输
欧洲行之捷克篇

相关星图