中关村在线

首页 排行 新品 问答 下载 论坛 手机 笔记本 数码相机 主板 显卡 平板电脑 更多

JAVA后台开发,用spring boot好,还是继续用spring MVC好?

举报
讨论回答 (11)
qinpeng3210
didiqin
luqingjin
gregory0823
jiujingdu
zmj0808

Spring Boot 和 Spring MVC 并不冲突,不是说你用了 Spring Boot 就不能用 Spring MVC,反过来也一样,我建议是将项目升级到 Spring Boot,并引入 spring-boot-starter-web 即可。


01. 理清 Spring Boot 和 Spring MVC 的关系

Spring 是一个大家族,包含了一系列的框架;

我们经常说到的 Spring 是指 Spring Framework,它的基础就是我们熟知的 IoC 和 AOP,其中 IoC 提供了依赖注入的容器,AOP 提供了面向切面的编程;

Spring MVC 提供了模型-视图-控制模式的开发组件,可以让前端视图、输入逻辑和业务逻辑分离;

随着 Spring 能够支持的组件越来越多,需要引入的配置文件也越来越多,为了简化项目搭建的复杂度,诞生了 Spring Boot ,它本身并不提供 Spring 的核心特性和扩展功能,而是可以快速方便地与 Spring 的其他框架进行整合,提升开发人员的效率和体验。


02. 为什么要用 Spring Boot

  • 让开发更快:使用 Spring Boot ,可以快速地与大部分主流框架的集成,由于约定优于配置的思想,在集成过程中只需要少量的配置,开发人员可以专注于业务逻辑的实现;

  • 让测试更快:Spring Boot 支持多种测试框架,比如 JUnit、Spring Test、Mockito 等等,开发人员只需要引入 spring-boot-start-test,就可以对数据库、Mock 等进行测试;

  • 让部署发布更快:Spring Boot 是内置容器的,也就是使用了 Spring Boot 的项目可以直接运行启动,而不需要关心容器环境的问题。


03. Spring MVC 项目迁移到 Spring Boot

将 Spring MVC 项目转移到 Spring Boot 也是比较简单的,在此过程中需要注意以下几点:

  • 如果项目不是基于 Maven 构建的,需要先将普通的 Java Web 项目转成 Maven 工程;

  • 在 pom.xml 文件中添加 spring-boot-starter 相关依赖;比如 Spring MVC 就需要引入 spring-boot-starter-web ;

  • 新增启动类 Application.java ,这是 Spring Boot 项目启动的入口;

  • 如果项目中有继承了 ContextLoaderListener 的监听类,需要进行修改;

  • 修改数据源的配置,只需要在 yml 或 properties 增加配置即可;

  • 日志输出的配置,Spring Boot 默认是使用 logback 框架的;

  • 使用 WebConfig 替代 web.xml 和 spring-mvc.xml 等配置文件。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

suezmwiljd

Java作为当下最流行的编程开发语言,其地位是其它语言短时间内无法撼动的,这几十年的积累让Java的生态圈变得很完善,因而Java界也有很多优秀的框架,这几年Spring框架的出现让Java开发变得更容易。

Spring框架为Java开发提供了完美的解决方案,Spring全家桶中的Spring MVC和Spring Boot 都可以用来开发Java Web项目,那开发者该如何选择呢?

Spring MVC与Spring Boot介绍与关系

1、Spring MVC是一款MVC框架

Spring MVC它是一款Web MVC框架,Spring MVC采用的是POJO模式,通过强大的依懒注入功能使得MVC分层开发更为容易。

2、Spring Boot是一种集成工具组合

Spring Boot主要是为了简化Spring项目的创建、运行及部署而推出的,虽说Spring应用的注解功能很强大,但依旧避免不了过多的XML配置。Spring Boot采用了“约定优于配置”的思想,可以做到零配置就能创建Spring应用,使开发者从繁琐的配置中解脱出来。

Spring Boot本身并不是一种新的技术,可以把它理解成是基于Spring的一套快速开发工具集合(集成了大量常用的第三方库配置,如:Jackson, JDBC, Mongo, Redis, Mail等)。

可以把Spring Boot理解成Spring MVC的升级(但不是简单的升级)。

Spring MVC与Spring Boot如何选择?

如上所述,Spring Boot无论是定位还是功能上都比Spring MVC要好,那是不是意味着我们只用Spring Boot就行了呢?答案是否定的。

  • 对于刚接触Java Web开发的朋友来说,Spring MVC是必须要掌握的,虽说配置麻烦,但掌握了它可以让你对Java Web开发及MVC模式有更深层的认知。如果不曾了解Spring MVC就直接用Spring Boot,可能出了问题都不知道怎么排查。

  • 对于项目选型来说,不管是老项目升级还是新项目,请选择Spring Boot,放弃Spring MVC。

以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

13430021AK

Java后台开发现在当然是采用spring boot好

spring boot是为了简化spring、spring mvc框架繁琐的配置而诞生的,它整合了spring mvc、spring security等spring全家桶,还包括redis、neo4j、mysql、elasticsearch、couchbase等常用的中间件。

Java

Java

传统的spring mvc项目需要自己配置xml文件,还需要单独配置tomcat服务器,xml的配置非常繁琐,spring boot开箱即用、约定优于配置。你创建一个spring boot项目,不需要配置就可以运行服务,一些配置已经有默认值了,如果你想修改可以自己定义。这就是spring boot的好处,可以使用默认值,想自己定义也可以。

Spring Boot

spring boot

spring boot项目内嵌tomcat、undertow、jetty等容器,不需要单独的服务器,项目可以直接打包成jar包,运行、部署都很方便。

现在比较火的微服务spring cloud也是基于spring boot项目的,spring boot项目方便整合网关、注册中心等,传统的spring mvc适合单体应用,不适合微服务。

Spring Cloud

spring cloud架构

所以Java后台开发采用spring boot比较好,如果有spring mvc的经验可以很快掌握spring boot的使用,spring boot要比传统的spring mvc方式要简单很多,spring boot的出现是为了简化spring项目的配置。在spring boot项目中同样可以使用spring mvc,只不过是spring boot整合了spring mvc使用更简单了。

Spring Boot

spring boot

新项目一定要放弃传统的spring mvc方式,采用spring boot。

黑客之家头条号分享黑客技术,物联网、GO、Python、Kotlin、Android、Java编程知识,科技资讯等喜欢的朋友可以关注我的头条号!

QXLYmm
lsagaxian

您好,我从事Java开发8年+,目前正使用SpringBoot进行服务端微服务开发。毋庸置疑,java后台开发在spring生态下,用SpringBoot显然比SpringMVC好。

实际上是不能拿SpringMVC和SpringBoot去做比较的。SpringBoot和SpringMVC是包含的关系,SpringBoot下面有很多模块,譬如下图这些:

还有这些:

以及这些:

所以不要觉得SpringBoot就仅仅是SpringMVC,SpringMVC在SpringBoot中充其量就是一个spring-boot-starter-web模块而已。

所以题主应该考虑的是web层我到底是用SpringMVC还是用SpringBoot中的spring-boot-starter-web模块呢?

SpringMVC

Spring MVC提供了一种轻度耦合的方式来开发web应用。它是Spring的一个模块,是一个web框架。核心就是Dispatcher Servlet, ModelAndView 和 View Resolver这三大模块,让大家开发web应用变得很容易。目前无论是直接用SpringMVC还是用SpringBoot中的web模块,其实都是用的SpringMVC,只不过SpringBoot无需配置,添加一些指定的注解即可。

SpringBoot

Spring Boot实现了自动配置,降低了项目搭建那些繁琐的步骤和配置,这些东西往往容易出错。所以SpringBoot把这些都给整合起来了,可以把它当做一个各种框架、中间件甚至工具的整合包,开箱即用,一个依赖,几个注解即可开始开发。

一定要认清的是SpringBoot不是解决Spring的方案,只是简化了Spring框架生态下的整合步骤和效率。

总结

现在大多数公司已经直接使用SpringBoot去做后台开发了,除了一些老旧系统,新的系统基本上都会采用SpringBoot去整合开发。SpringCloud、微服务等对SpringBoot的支持都比较好。同样在招聘需求里,SpringBoot也是必须会的一个框架。

综上,个人建议采用SpringBoot替代SpringMVC进行开发。

hocok
展开查看全部 11 条讨论
相关问题

JAVA后台开发,用spring boot好,还是继续用spring MVC好?

1421 浏览 11 回答

如果没有spring的框架集合,java将会很快被遗弃对吗?

1438 浏览 10 回答

Django开发后端,真的比SpringBoot要省事吗?

1337 浏览 10 回答

魅蓝note手机自定义铃声怎么设置,上面提示说将歌曲移动到Ringtones的文件夹,我在文档里没找到这个文件夹,但是我要新建他说已经存在了。

3123 浏览 6 回答

Spring Boot接口如何设计防篡改、防重放攻击?

1592 浏览 5 回答

扩展阅读

TCL T9 Pro冰箱评测:双系统革新,真平嵌新潮流,质价比震撼

评论 1

TCL T9 Pro冰箱评测:双系统革新,真平嵌新潮流,质价比震撼

20-1200mm、60倍超级变焦 松下LUMIX FZ80D桥式相机拍摄体验

评论 5

20-1200mm、60倍超级变焦 松下LUMIX FZ80D桥式相机拍摄体验

虚化光斑效果出众 尼克尔Z 135mm f/1.8 S Plena镜头体验

评论 1

虚化光斑效果出众 尼克尔Z 135mm f/1.8 S Plena镜头体验

国产手机先于iPhone 16落地AI智能体,智能手机迈入AI智能体时代

评论 1

国产手机先于iPhone 16落地AI智能体,智能手机迈入AI智能体时代

发烧友的第一台全画幅 佳能EOS R6 Mark II是否适合?

评论 40

发烧友的第一台全画幅 佳能EOS R6 Mark II是否适合?
热门问题

苹果12召回肿么操作?

1045 浏览 6 回答

苹果12召回肿么操作?

求推荐一款笔记本。工科研究生用,便于随身携带。平时做科研,处理数据,查阅文献。不玩网游和单机,至多玩棋牌游戏和影音。喜欢摄影,需要修图。附加:纠结要不要带数字键盘区。预算最多8000。尽量便宜些。

1.2万 浏览 6 回答

求推荐一款笔记本。工科研究生用,便于随身携带。平时做科研,处理数据,查阅文献。不玩网游和单机,至多玩棋牌游戏和影音。喜欢摄影,需要修图。附加:纠结要不要带数字键盘区。预算最多8000。尽量便宜些。

平面设计一个月工资一般多少

6520 浏览 5 回答

平面设计一个月工资一般多少

男明星排行榜100名

5866 浏览 5 回答

男明星排行榜100名

肿么找回QQ浏览器历史记录

7279 浏览 6 回答

肿么找回QQ浏览器历史记录

马斯克有华人血脉吗

8759 浏览 6 回答

马斯克有华人血脉吗

投诉京东商城的电话是多少?

4292 浏览 6 回答

投诉京东商城的电话是多少?

笔记本电脑可以连接到无线网络,但是显示无Internet,插网线也没办法上网

1.2万 浏览 7 回答

笔记本电脑可以连接到无线网络,但是显示无Internet,插网线也没办法上网

256gSSD是否够用?打算买个笔记本,办公为主,查阅文献等。不玩大型游戏,至多玩一些棋牌类游戏和影音娱乐。手里有2T移动硬盘,但也想在笔记本上存少量的电影。平时玩单反,处理图片比较多。

2.3万 浏览 4 回答

256gSSD是否够用?打算买个笔记本,办公为主,查阅文献等。不玩大型游戏,至多玩一些棋牌类游戏和影音娱乐。手里有2T移动硬盘,但也想在笔记本上存少量的电影。平时玩单反,处理图片比较多。

wps怎么设置文字行间距20磅,我找不到在哪里设置?

2.5万 浏览 6 回答

wps怎么设置文字行间距20磅,我找不到在哪里设置?
最新问答

复制到word版里的文章,有很多空行,要怎么去掉!

419 浏览 2 回答

复制到word版里的文章,有很多空行,要怎么去掉!

win7删除界面文件时一直删除不了,一直显示正在计算

1.1万 浏览 5 回答

win7删除界面文件时一直删除不了,一直显示正在计算

为何打开每次打开CAD文件都要重新打开程序

942 浏览 8 回答

为何打开每次打开CAD文件都要重新打开程序

在win7 64位系统下,怎么看出来组RAID0成功了?

7011 浏览 3 回答

在win7 64位系统下,怎么看出来组RAID0成功了?

Wps表来自格怎么删除水印

9332 浏览 4 回答

Wps表来自格怎么删除水印
举报
举报成功

经过核实后将会做出处理,感谢您为社区和谐做出贡献。

请选择删除原因
删除成功
确定推荐该回答?
推荐成功

更多频道

频道导航
辅助工具