首先,MVC是比较经典的软件开发架构划分方式,在Web开发领域有广泛的应用,随着移动互联网、大数据和云计算的不断发展,目前MVC结构也在经历着不断的演化和发展。
目前MVC在以下几个场景依然有广泛的应用:
第一:Web开发领域。由于Web开发的特殊性,采用MVC进行结构划分一方面会提升团队的协同开发效率,另一方面也有利于日后软件产品的维护和升级,同时能够提升软件模块的复用性,所以不论是开源框架还是独有的开发架构往往都是基于MVC的。在当前云计算技术逐渐普及的情况下,尤其是PaaS的应用,MVC框架得到了进一步的细化,模型部分与控制器和视图之间全面采用了资源接口的编程方式,微服务趋势还是比较明显的。
第二:移动互联开发。目前移动互联开发包括Android开发、iOS开发以及各种小程序开发也在采用MVC框架,尤其是在事件处理机制上往往普遍会采用MVC的处理方式,由于Android开发大都会采用Java语言,所以体现得尤其明显一些。
第三:与交互相关的开发。相对于平台开发任务更专注于算法设计不同,应用级开发往往比较关注于资源的调用和响应,这个过程要与用户完成大量的交互,而此时采用MVC结构会明显提升系统的稳定性和可扩展性,这也是为什么在交互比较多的开发任务中,往往会更愿意采用MVC框架的原因。
其实,MVC作为比较经典的开发框架,目前在大量的项目中都有所采用,作为软件开发人员来说,应该熟练掌握基于MVC的开发过程。
JAVA后台开发,用spring boot好,还是继续用spring MVC好?
毋庸置疑,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进行开发。
初学java的小白接到了项目:JSP页面与MySQL数据库连接、MVC模式等。怎么做才能体现项目需求呢?
JSP是Java Web开发的传统技术之一,虽然弊端比较多,比如业务逻辑与显示逻辑耦合、无法分别部署、开发角色分工不清等问题,但是JSP对于初学者来说还是有一定的学习必要性,有不少遗留项目依然需要采用JSP技术。
MySQL数据库是目前使用比较多的数据库之一,尤其在Web开发领域。MySQL数据库简单易学且功能强大,Java程序员往往都对MySQL数据库比较熟悉。虽然通过JSP直接连接MySQL数据库是可以做到的,但是这种做法显然是有很多问题的,恰好通过MVC结构是可以基本解决这些问题的。
MVC是一个软件开发领域的经典结构,采用MVC进行Web开发也就是所谓的Model2开发方式,这种开发方式用JavaBean来描述M(模型),采用JSP来描述V(视图),采用Servlet来描述C(控制器)。MVC最大的好处是实现了不同部分的解耦,提升了Web程序的模块化程度,使得多角色协作开发有了重要的基础,也为日后的优化打下来基础。
要想利用MVC结构完成一个传统Java Web开发,需要综合使用Servlet、JSP、JavaBean、JDBC、MVC、DAO等一系列传统技术,而通过一个模拟银行“存取转”业务的Web应用是一个不错的选择。
存取转业务的基础是账户,所以可以先写一个Account类作为M部分,然后为M定义一个映射表格。以DAO的方式完成数据库与Account类的映射,需要定义接口、实现类和工厂类。接着定义控制器Servlet,在Servlet中完成用户请求的各种“导航”,最终通过JSP完成呈现。
这个过程只是一个基本的模拟,而且并没有采用任何开源框架,对于Java学习者来说,学习开源框架是必要的。在掌握了MVC和DAO之后,再学习SpringMVC和Mybatis会更容易理解。