中关村在线

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

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好?

1422 浏览 11 回答

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

1439 浏览 10 回答

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

1341 浏览 10 回答

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

3123 浏览 6 回答

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

1598 浏览 5 回答

相关产品
扩展阅读

OPPO Reno13系列上手:超美“果味儿”小直屏

评论 6

OPPO Reno13系列上手:超美“果味儿”小直屏

铭瑄MS-iCraft Z890 Arctic主板评测 全新BIOS体验拉满

评论 8

铭瑄MS-iCraft Z890 Arctic主板评测 全新BIOS体验拉满

HKC G27M7Pro显示器评测:你要的全都有!堆料狂魔不外乎如此

评论 7

HKC G27M7Pro显示器评测:你要的全都有!堆料狂魔不外乎如此

2024珠海航展尼康Z8+Z 100-400mm拍摄体验-倪晓康

评论 22

2024珠海航展尼康Z8+Z 100-400mm拍摄体验-倪晓康

iQOO 13影像体验:既是性能之光,也是拍照旗舰

评论 35

iQOO 13影像体验:既是性能之光,也是拍照旗舰
热门问题

荣耀Magic7 Pro

9728 浏览 1 回答

荣耀Magic7 Pro

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

7295 浏览 6 回答

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

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

1.2万 浏览 6 回答

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

虫虫漫画观看页面漫画入口在哪

1.3万 浏览 5 回答

虫虫漫画观看页面漫画入口在哪

手机在哪里登录192.168.1.1设定页面?

9447 浏览 7 回答

手机在哪里登录192.168.1.1设定页面?

抖音十大股东是谁?

3323 浏览 6 回答

抖音十大股东是谁?

有一样东西,比雪还白,比黑板还黑,男的一天用三次,女的一辈子用一次,是什么?

6430 浏览 6 回答

有一样东西,比雪还白,比黑板还黑,男的一天用三次,女的一辈子用一次,是什么?

海尔售后服务24小时服务热线

2005 浏览 5 回答

海尔售后服务24小时服务热线

请问pad是什么意思?

3664 浏览 9 回答

请问pad是什么意思?

马斯克有华人血脉吗

8779 浏览 7 回答

马斯克有华人血脉吗
最新问答

CAD怎么用多线画圆弧?

3200 浏览 4 回答

CAD怎么用多线画圆弧?

android手机如何打开.srt文件?

9335 浏览 3 回答

android手机如何打开.srt文件?

为何水冷散热器有两个插在主板的插头?

9011 浏览 4 回答

为何水冷散热器有两个插在主板的插头?

《刺客信条奥德赛》闪退解决,驱动调整至哪个版本可避免跳出?

6621 浏览 3 回答

《刺客信条奥德赛》闪退解决,驱动调整至哪个版本可避免跳出?

synaptics定点装置关闭了怎么处理

2467 浏览 5 回答

synaptics定点装置关闭了怎么处理
举报
举报成功

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

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

更多频道

频道导航
辅助工具