快速判断一个项目是Spring MVC框架还是Spring Boot框架

news/2024/9/18 15:03:46/ 标签: spring, mvc, spring boot

1. 查看项目的启动类

Spring Boot: 通常有一个主类,包含 @SpringBootApplication 注解,并且有一个 main 方法来启动应用程序。

@SpringBootApplication
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

Spring MVC: 通常没有这样的启动类,项目的启动依赖于外部Web容器(如Tomcat)的配置。

2. 查看 pom.xml 或 build.gradle 文件

Spring Boot: 通常会有 spring-boot-starter 相关的依赖。

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

Spring MVC: 依赖项通常是 spring-webmvc,而不是 spring-boot-starter

<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId>
</dependency>

3. 查看配置文件

Spring Boot: 通常使用 application.properties 或 application.yml 文件来配置应用程序。

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/db

Spring MVC: 通常使用 web.xml 或 applicationContext.xml 文件来配置应用程序。

<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>

4. 查看项目结构

Spring Boot: 项目结构通常比较简洁,主要包含 src/main/java 和 src/main/resources 目录。

Spring MVC: 项目结构通常包含 src/main/webapp 目录,并且有 WEB-INF 文件夹。

5.查看依赖管理

Spring Boot: 使用 spring-boot-starter-parent 作为父项目。

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.4</version>
</parent>

Spring MVC: 通常使用 spring-framework-bom 或者没有特定的父项目。

<dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-framework-bom</artifactId><version>5.3.9</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

总结

通过查看项目的启动类、依赖配置、配置文件、项目结构和依赖管理,可以快速判断一个项目是Spring MVC框架还是Spring Boot框架。Spring Boot项目通常有一个带有 @SpringBootApplication 注解的启动类,使用 spring-boot-starter 相关的依赖,并且配置文件是 application.properties 或 application.yml。Spring MVC项目通常依赖于外部Web容器,使用 spring-webmvc 依赖,并且配置文件是 web.xml 或 applicationContext.xml


http://www.ppmy.cn/news/1516751.html

相关文章

作业训练三编程题13. 导弹防御系统

【问题描述】 某国为了防御敌国的导弹袭击&#xff0c;开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷&#xff1a;虽然它的第一发炮弹能够到达任意的高度&#xff0c;但是以后每一发炮弹都不能高于前一发的高度。某天&#xff0c;雷达捕捉到敌国的导弹来袭&#xf…

python脚本请求数量达到上限,http请求重试问题例子解析

在使用Python的requests库进行HTTP请求时&#xff0c;可能会遇到请求数量达到上限&#xff0c;导致Max retries exceeded with URL的错误。这通常发生在网络连接不稳定、服务器限制请求次数、或请求参数设置错误的情况下。以下是一些解决该问题的策略&#xff1a; 增加重试次数…

并发服务器开发基础

一、服务器模型 1. 单循环服务器&#xff1a; 单循环服务器在同一时刻只能处理一个客户端的请求。由于其结构简单&#xff0c;适合低负载的场景&#xff0c;但在并发请求增加时可能导致性能问题。 2. 并发服务器模型&#xff1a; 并发服务器可以同时响应多个客户端…

本地环境注入jupyter:无法在jupyter选择已经创建的conda环境?快来看下解决办法(jupyter notebook选择已创建环境)

1、WinR打开本机cmd命令行 2、运行 conda activate 本地已创建的环境名称 3、运行 conda install ipykernel 4、运行 python -m ipykernel install --user --name 本地环境名称 --display-name "在jupyter上显示的环境名称" 就可以在jupyter notebook中看到环…

谷粒商城实战笔记-250-商城业务-消息队列-RabbitMQ安装-Docker

一&#xff0c;docker安装RabbitMq RabbitMQ 是一个开源的消息代理软件&#xff0c;广泛用于实现异步通信和应用程序解耦。 使用 Docker 容器化技术可以简化 RabbitMQ 的安装和部署过程。 以下是使用 Docker 安装 RabbitMQ 的详细步骤。 步骤 1: 安装 Docker 如果您的系统…

如何解决:Failed to start jenkins.service: Unit not found.

当在 CentOS 上尝试启动 Jenkins 服务时&#xff0c;出现 Failed to start jenkins.service: Unit not found 的错误&#xff0c;这通常表示 Jenkins 服务未安装或未正确配置。请按照以下步骤进行排查和解决&#xff1a; 解决步骤 检查 Jenkins 是否已安装&#xff1a; 确认 J…

如何使用ssm实现旅游网站的设计与实现

TOC ssm150旅游网站的设计与实现jsp 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#xff0c;规范化管…

ComfyUI 常用的节点

总的来说&#xff0c;如果可以的话 最佳实践是直接访问每个节点仓库&#xff0c;仔细阅读作者提供的文档和说明。然后&#xff0c;手动执行 git clone 来获取仓库的代码。 接着&#xff0c;你可以通过手动执行 pip install -r requirements.txt 来安装每个项目的依赖。这种方法…

【Linux】第十八章 Reactor模式

文章目录 Reactor模式epoll ET服务器&#xff08;Reactor模式&#xff09;设计思路Epoller.hppSock.hppProtocol.hppService.hppTcpServer.hpp-重点Connection类TcpServer类服务器框架TcpServer构造AddConnection函数SetNonBlock 函数Accepter函数IsExists函数TcpRecver函数Tcp…

[oeasy]python031_[趣味拓展]unix起源_Ken_Tompson_Ritchie_multics

[趣味拓展]unix起源_Ken_Tompson_Ritchie_multics &#x1f94b; 回忆上次内容 上次 动态设置了 断点 断点 可以把代码 切成一段一段的可以 更快地调试 调试的目的 是 去除 bug 别害怕 bug 一步步 总能找到 bug这 就是 程序员基本功 调试 debug 在bug出现的时候 甚至…

docker-harbor私有仓库部署和管理

harbor&#xff1a;开源的企业级的docker仓库软件 仓库&#xff1a;私有仓库 公有仓库 &#xff08;公司内部一般都是私有仓库&#xff09; habor 是有图形化的&#xff0c;页面UI展示的一个工具&#xff0c;操作起来很直观。 harbor每个组件都是由容器构建的&#xff0c;所…

高效的数据恢复软件介绍给大家!

数据丢失可太烦人了&#xff0c;在工作中我们经常会遇到数据丢失的情况&#xff0c;那么你知道数据丢失怎么找回来吗&#xff1f;当然找的回来啦&#xff01;需要用上高效且有用的数据恢复工具。那么&#xff0c;今天就要给大家介绍两个好用的数据恢复工具&#xff0c;可以将您…

5个常见问答 | 1+X证书《大数据应用开发(Python)》

1、 1X大数据应用开发&#xff08;Python&#xff09;哪些人群可以考&#xff1f; 全日制在读的中高职学校、应用型本科、本科层次职业教育试点学校院校的学生&#xff0c;有意向从事与证书相关岗位的社会人士都可考取该证书。 2、1X大数据应用开发&#xff08;Python&am…

网络udp及ipc内存共享

大字符串找小字符串 调试 1. 信号处理函数注册&#xff1a;•一旦使用 signal 函数注册了信号处理函数&#xff0c;该函数就会一直有效&#xff0c;直到程序结束或者显式地取消注册。2. 注册多次的影响&#xff1a;•如果多次注册同一信号的处理函数&#xff0c;最后一次注册的…

【手写数据库内核组件】0303 数据缓存池(二) 缓存块使用前需要固定,缓存加载与无效,无锁的替换算法

0303 数据缓存池(二) ​专栏内容: postgresql使用入门基础手写数据库toadb并发编程个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 0303 数据缓存池(二)一、概述 二、缓存块操作原理 2.1 缓存块的读写访问 2.2 无…

C学习(数据结构)-->实现链式结构二叉树

目录 一、链式二叉树结构 二、实现 1、申请新结点 2、前、中、后序遍历 1&#xff09;前序遍历 例&#xff1a; 2&#xff09;中序遍历 3&#xff09;后序遍历 3、结点个数 1&#xff09;二叉树结点个数 例&#xff1a;​编辑 2&#xff09;二叉树叶子结点个数 3&…

网络排名变差算法在充电桩计量可信度评价中的应用AcrelCloud-9000安科瑞充电柱收费运营云平台

摘要&#xff1a;网络排名变差算法是指根据充电交易流水数据构造桩车网络&#xff0c;利用复杂网络的投票智慧而非传统的物理实验来获得对量值的信心。将排名变差算法用于桩车网络计算中&#xff0c;旨在检定合格的充电桩对其他充电桩排名变化的影响&#xff0c;这种影响以电动…

计算机毕业设计选题推荐-OA办公管理系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

Git提交错误代码如何回退代码

1&#xff0c;找到需要回退的提交行&#xff0c;点击右键&#xff0c;点击重置当前分支到此次提交 2,选择强行合并 3&#xff0c;执行git pull -f 强行推送 4&#xff0c;如果当前账号没有开启本分支强推权限 需要去git开启 5&#xff0c;如果没有推送&#xff0c;处于待推…

深度学习学习经验——长短期记忆网络(LSTM)

长短期记忆网络&#xff08;LSTM&#xff09; 长短期记忆网络&#xff08;LSTM&#xff0c;Long Short-Term Memory&#xff09;是一种特殊的循环神经网络&#xff08;RNN&#xff09;&#xff0c;专为解决 RNN 中长期依赖问题而设计。LSTM 引入了三个门和一个细胞状态&#x…