javaEE常用开源框架的认识及概述,带你深入探索Java开发世界

要了解SpringMVC,首先来看看MVC模型,对于表现层的框架一般都会采用MVC这种设计模型去做架构,MVC即:

  • M model 模型:实际上就是java中JavaBean的一个对象,用来封装数据;

  • V View 视图:其中指的是jsp技术或者HTML这种技术,用来显示;

  • C Controller 控制器:指的是像Servlet这种技术,能用来接收请求。

MVC这种设计模型的意思就是,发请求,请求先到达控制器(Controller),控制器接收请求,请求接收到之后,再用一个JavaBean(model)把拿到的数据封装起来,根据这个JavaBean中封装的数据就可以调用业务层进行业务处理,业务层如果再访问持久层的数据,也可以再把数据封装到JavaBean当中,最终可以把程序转发到jsp(view),jsp显示结果生成HTML响应给用户,这就是整个一个MVC模型,分工非常明确。

SpringMVC框架也是一个处于表现层的框架,是采用MVC模型来设计的,所以它能够接受请求,拿到请求参数,并进行数据的封装,还可以转发到jsp显示对应的数据。同时,它也是一个轻量级的web框架,它属于Spring FrameWork的一个后续产品,已经融合在Spring Web Flow中。做web开发可以选择SpringMVC这个框架,也可以选择别的框架(比如Struts2),因为最终Spring都可以帮你集成。但使用SpringMVC更有好处,因为SpringMVC属于Spring的一部分,SpringMVC和Spring的整合相比别的框架更加容易。

SpringMVC目前已经成为最主流的框架之一,并且随着Spring3.0的发布,已经全面超越Struts2,成为最优秀的MVC框架。

它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口,而如果我们使用Servlet,必须继承HttpServlet或者实现Servlet接口。同时它还支持RESTful编程风格的请求。

3、Hibernate框架和Mybatis

Hibernate框架是一个全自动的、完全面向对象的持久层框架,代替了以往的DButils帮助我们完成数据库操作。

下图显示了Struts2框架在三层架构中的位置:

javaEE常用开源框架的认识及概述,带你深入探索Java开发世界

使用Hibernate框架的好处:能够使我们操作数据库时,可以用面向对象的方式来完成,而不需要写SQL语句。

Hibernate是一款orm框架,orm(Object Relational Mapping,)即对象关系映射,在hibernate中体现为使用一个配置文件来配置表,即对象与数据中表之间的映射关系,其中对象名对应一个表名,对象属性对应表中的某一列。

相对于Hibernate,Mybatis框架是一个半自动化的持久层框架,同样也是用于完成数据库操作。相比hibernate框架,两者有相同点也有不同点,hibernate框架sql语句已经被封装,直接可以使用,而mybatis 属于半自动化,sql需要手工完成,稍微繁琐,但可以避免不需要的查询,提高系统性能。同时Mybatis通过手动写SQL语句,也更容易维护。

在开发工程中,Hibernate框架无需过多关注底层实现,只要去管理对象即可,而Mybatis需要自行管理映射关系。

总结起来,Mybatis相比于Hibernate,更加的小巧、简单,某些操作需要我们自己完成。

3、Spring框架

Spring是分层的Java SE/EE应用full-stack(全栈式)轻量级开源框架,以IOC(Inverse Of Control 反转控制)和AOP(Aspect Oriented Programming 面向切面编程)为内核,提供了表现层MVC和持久层Spring JDBC以及业务层事务管理等众多的企业级应用技术,还能整合众多著名的开源第三方框架和类库,逐渐成为使用最多的JavaEE企业应用开源框架。

javaEE常用开源框架的认识及概述,带你深入探索Java开发世界

从这张图可看出,Spring不属于任何一层,它横跨了三层架构,它是一个以IOC和AOP为核心的容器框架,能管理应用对象的生命周期。我们之前创建对象一般都要通过new + 构造方法,而且每new一次就要开辟一块内存空间,这样如果项目中使用了1000个对象,就需要开辟1000块内存空间,而在某段时间中我们可能并不同时需要这1000个对象,这样就造成了资源的浪费,如果使用Spring这个容器,它就会自动帮我们管理这些对象的生命周期,就像tomacat容器帮我们管理Servlet的生命周期一样。

对AOP的简单理解:之前我们一直学的是OOP(面向对象编程),因为OOP存在某些缺陷,所以有了AOP(面向切面编程)去对OOP进行补充,所以AOP和OOP之间的关系不是包含关系,而是AOP是对OOP的补充。

Spring优点还在于组件化,Spring中的组件指的就是Spring所管理的对象。一个项目对我们来说,可以理解为由各个类产生对象,由对象调用方法,最终实现功能。而Spring可以把项目中用到的类进行管理,把这些对象称为组件,项目的实现由各个对象相互调用方法就可以变成组件之间的相互调用,这样项目就被组件化了。组件化的好处在于,组件与组件之间是没有关系的,这样就降低了程序之间的耦合。

Spring各个模块结构:

javaEE常用开源框架的认识及概述,带你深入探索Java开发世界

4、SpringBoot框架

SpringBoot框架是基于Spring框架的,所以SpringBoot本质还是Spring框架,它的出现是替代Spring中的缺点的,SpringBoot是对Spring的进一步封装,所以Spring能做的SpringBoot都能做,而且SpringBoot更加好用。

对Spring存在的缺点的简单理解:首先使用Spring框架,需要进行的配置是十分繁琐的,而且有些配置不论谁使用都是一样的,所以没有必要每次都配置;其次,项目的依赖管理也是一件耗时耗力的事情,在环境搭建时,需要分析导入库以及相关联库的坐标,一旦选错了依赖的版本,可能就会带来不兼容的问题。

而SpringBoot对上述的Spring存在的问题都提出了解决方案。它基于约定优于配置的思想,对于某些固定的配置自动就帮你配好了,让开发人员把更多的精力放在业务逻辑的处理上;而SpringBoot用起步依赖的方式,把具备某些功能的坐标打包到一起,方便导入,并提供了一些默认的功能。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

还有Java核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板可以领取+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书+2021年最新大厂面试题。
在这里插入图片描述
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
中…(img-wteJWIVm-1712113225962)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 25
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值