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

本文介绍了SpringMVC框架如何利用MVC设计模式进行Web开发,强调了其轻量级和与Spring的整合优势。同时对比了Hibernate和Mybatis的持久层框架,以及SpringBoot对Spring框架的简化。最后提到了Java并发体系和分布式系统在求职市场的重要性。
摘要由CSDN通过智能技术生成

要了解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并发体系思维导图,希望对你有所帮助。

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
转存中…(img-52FfEZrN-1712041401188)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

Tephra旨在构建一个稳定、高效、易于集群、快速扩展的JavaEE开发框架。目前,Tephra已经具备了以下特性: 提供类级别的热更新,但仅建议在需要快速修正严重BUG、并且无法立即进行全更新时使用。 提供全冗余方式的缓存,自动在每个节点间同步缓存数据,而每个节点都仅从本地内存中获取缓存数据,从而提供高效的执行效率,并且当部分节点宕机时仍旧能正常提供服务。当然,也允许使用Redis提供统一的中心节点缓存。此特性可用于多节点负载时提供不停服更新。 提供数据库读写分离、及读负载均衡,并且允许配置多个不同的数据库,甚至允许在运行期间增加新的数据库配置,并自动映射ORM。允许执行标准的SQL或存储过,同时提供了一个简单、轻量的ORM工具,并集成Hibernate、MyBatis为复杂ORM需求提供支持。 提供MongoDB工具实现对NoSQL的支持,支持负载均衡。 提供轻量级、快速响应的控制器,允许设置最大并发峰值,以确保在突如其来的并发攻击后能继续正常提供服务;也允许设置单IP最大并发量,确保小量IP并发攻击时仍能正常提供服务。允许发布为HTTP(S)、WebSocket、Socket服务。 提供JavaScript脚本引擎支持,允许JavaScript与JavaBean自由交互,并且可以发布JavaScript为服务;以及使用Javacript作为复杂规则验证器。 提供Hadoop存取支持。 模块化开发,使用注解简化配置,增强代码可读性与维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值