说一说那些Java框架技术是可以放弃了

Java进阶面试合集笔记——19个技术栈(2024最新总结) 什么是ActiveMQ?ActiveMQ服务器宕机怎么办?丢消息怎么办?持久化消息非常慢怎么办?消息的不均匀消费怎么办?死信队列怎么办?ActiveMQ中的消息重发时间间隔和重发次数吗? 阅读详情

各位好啊,作为java开发者,对于各类java开发技术、开发框架肯定是多少都要了解和知道的。

但是作为已经发展了几十年的java开发生态,各类技术层出不穷,有的新技术新框架已经对旧技术旧框架产生了颠覆性的影响,当然还有一些旧技术压根就没流行过。今天我们来看下Java那些可以放弃的技术了。

Java 至今已经发展了20年,其丰富的开源框架打造了一个繁荣稳固的生态圈

  • JavaEE 框架,从百家争鸣到现在 Spring 完全一统天下

  • Web 开发,从标配的 SSH 到现在 SpringMVC + MyBatis 组合及更高效的SpringBoot

  • IDE,从当年如火如荼的 JBuilder 到 Eclipse,再到现在的IntelliJ IDEA

随着时间推移,一些优秀的框架崭露头角,一些低效框架也慢慢退出历史舞台。

今天,我们就来看看有哪些框架,完全可以不用学啦

​我判断的依据主要有以下几点:

  1. 实际开发能否用到?

  2. 是否有助于加深对技术的理解?

  3. 对面试是否有用?

JSP

JSP在实际开发中,主要是作为 MVC 模型中的 V(View)层出现的。当然,View 层的渲染技术除了JSP,还有 FreeMaker、Velocity 等。

JSP 作为页面模板,在后端通过 MVC 框架渲染成 HMTL,然后再发送到客户端(例如浏览器)来呈现。这也就是我们常说的“前后端不分离”,“混合式”开发。

而当前,包括我所在的公司,以及大部分互联网公司。要么已经抛弃这种模式,要么正在抛弃的路上,而转向彻底的“前后端分离”。

在“前后端分离”模式下,后端只负责提供服务接口(例如 REST),而前端(例如 HTML5)通过接口发送/获取,呈现数据(例如 JSON 格式)。

这样,在后端,原来的MVC框架,某种意义上已经演变为 MC 框架。因此,与V(View)相关的一切模板技术都失去了学习的必要,其中当然也包括 JSP。所以,后来的 Java 学习者,我的建议是:“完全可以放弃对 JSP 的学习。”

Struts

在 Java 后端开发中,MVC 模型还是主流。而 Struts 作为一个 MVC 框架,单从技术上来说,还是很优秀的。

但是,现在 Spring 实在是太强势了,越来越成为 Java 开发中的“一站式”工具包,其中的一个利器就是 Spring MVC。

望名知意,Spring MVC 也是一个 MVC 框架。而且因为它是 Spring 的亲儿子,自然和 Spring 契合得非常完美。

同时,在设计之初,Spring MVC 就参照了其他 MVC 框架的优缺点(包括Struts),所以用起来非常爽。因此,在 MVC 框架领域,Spring MVC 大有一统天下的趋势。

因此现在,很多公司,老的 Struts 项目还在维护。但新的项目开发,更多转向了Spring MVC。因此,如果你是 Java 新手,正在学习中,我的建议是:

“不要再学习 Struts 了,从 Spring MVC 开始吧!”

Hibernate

Hibernate 作为老牌的OR映射框架,功能非常强大,涵盖面非常广。但这既是它的优点,同时也成为它的“负担”,是开发人员“不能承受之重”。

Hibernate 的设计初衷,是为了最大程度的解放程序员,完全隔离数据库,实现彻底的 OR 映射。程序员甚至可以不写一行 SQL 语句,单通过配置就能实现对数据库的操作。

当然,为了实现这个目标,Hibernate 也设计的非常复杂、非常精巧。就不可避免的带来以下副作用:

  1. 学习成本高

  2. 配置复杂

  3. 调优困难

前两点不难理解,单说“调优困难”。

因为 Hibernate 的设计目标是彻底的 OR 映射,彻底的隔离 SQL 语句。但必然会带来一定的性能损失。大部分情况下,应用如果对性能不敏感,Hibernate 也没问题。但应用一旦对性能敏感,有SQL级别调优的需求,Hibernate 的优点反而成为缺点。

虽然 Hibernate 也支持 SQL 级别的调优,但因为框架设计的过于复杂和精巧,这就需要开发人员对 Hibernate 理解的非常透彻,这就带来了更高的学习成本。

而现在最流行的 MyBatis,作为一个“混合式”,轻量级OR映射框架,既继承了Hibernate 的优点,同时也吸取了他的教训。在支持配置的同时,又能接触SQL,从而带来了更多灵活性(包括调试、优化)。

当前,在实际开发中,Hibernate 使用的越来越少了。大家更偏爱MyBatis这种轻量级框架。所以,对后来学习者,我的建议是:

“不需要再学习 Hibernate 了,学 MyBatis 就够了。”

Servlet(要学习)

当然,现在不会有任何公司,再用纯粹的 Servlet 来时实现整个 Web 应用,而是转向一些更高级的技术(例如各种MVC框架)。因此,会给人一种错觉:Servlet 已经过时,后来者就不需要再学习了。

在这里,我可以非常负责任的说:这种观点是极端错误,极端不负责任的。

Servlet 不仅要学,而且要学深,学透。

当前,Servlet 虽然不再是一个主流 web 开发技术,但依然是 Java Web 开发技术的基础,是 Java Web 容器的基石,是行业标准。而现在流行的各种 MVC 框架(包括 SpringMVC),在最底层,还是以 Servlet 为基础的。

为此,我画了一个简单的图(不准确,会意即可):

​

所以,如果你想要彻底掌握某个 MVC 框架,则必须彻底理解 Servlet。

而且,Servlet 作为一个基础设施。精通它,不仅有助于理解各种 MVC 框架。即使 Servlet 本身,也有很多实用价值。

如果你深刻理解了Servlet 的生命周期,就可以在底层做很多事情。譬如在Request 进来的时候,进行拦截,进行权限的判定。也可以在 Response 发出的时候,进行拦截,统一检查、统一附加。

所以,如果你正在学习 Java,对 Servlet,我的建议是:

“Servlet 不仅要学,而且要学深,学透。”

Others

目前在国内,Java 更多是作为 web 后端技术出现的。因此在实际学习中,很多技术就不符合“国情”,学习的现实意义不大。下面我就简单列举下。

1.Applet

作为页面插件技术,不用多说,连flash都快被淘汰了,更无论从未流行的applet。

2.Swing

作为桌面 UI 框架。且不说本身设计的咋样。现实开发中,我接触的桌面应用,要么用 C++(例如MFC),要么用 C#(Winform、WPF)。所以,Swing 就没有学习的必要了。

3.JDBC

作为较低层的数据库基础设施,JDBC 被很多框架(例如MyBatis)支持。但在实际开发中,程序员即使不了解也无大碍。因此,虽然我不能建议你放弃 JDBC学习,但如果你时间有限,完全可以把它的优先级排低一点。

4.XML

XML 现在还在广泛应用。但作为一个 web 数据传输格式,正在逐渐被 JSON 替代。所以,对 Java 后端学习来说,XML 简单了解即可。至于庞杂的 XML 操作 API(例如XPath),完全不必学习。将来真要用到,再查也不迟。

这些是一家之言,敬请见谅。

Java Spring 框架技术从入门到放弃:Spring生态之Spring 框架概述学习笔记,Spring 框架是什么,Spring 核心功能与模块,Spring 框架的优势 阅读详情

相关推荐

hibernate还有人用吗

🏆作者简介:哪吒,优快云2022博客之星Top1、优快云2021博客之星Top2、多届新星计划导师✌、博客专家💪,专注Java硬核干货分享,立志做到Java赛道全网Top N。🏆本文收录于,,目前已经700+订阅,优快云最强Java专栏,包含全部Java基础知识点、Java8新特性、Java集合、Java多线程、Java代码实例,理论结合实战,实现Java的轻松学习。🏆姐妹篇,,包含面向对象、基本数据类型、数组、继承和多态、泛型、枚举等Java基础知识点。🏆姐妹进阶篇,

学Java,找哪吒 1万+

Hibernate淘汰了?只是你不会用而已

不知道大家在整合SpringBoot+MyBatis有没有想过, 为什么SpringBoot不提供MyBatis的官方Starter呢?你以为是为了和SpringDataJPA竞争?不不不 首先Hibernate才是正统的JPA血脉!JPA(Java Persistence API )是JDK钦点的ORM规范! 那SpringBoot要做ORM框架肯定跟着JDK玩,毕竟JDK才是整个java的标准,所以SpringBoot会选择Hibernate作为SpringDataJPA的ORM实现框架也理所当

Yh360311的博客 8033

为什么90%的开发者放弃使用Hibernate,而选择MyBatis?

Java基础教程系列,打造精品专栏。

学Java,找哪吒 2万+

最全Java后端技术栈

前言 最近很多伙伴留言,说我只发了2021Java后端的路线,没有发都需要学习哪些技术。为此,我特地总结了一份Java后端开发需要的技术栈 技术 构建工具 Maven:http://maven.apache.org/ Gradle:https://gradle.org/ Spring Boot Initializr:https://start.spring.io/ 单元测试 Junit:https://junit.org/junit5/ 开发框架容器 Spring:https://spring.io/pro

Is_Zhang的博客 1万+

Java线程何时放弃CPU时间片

线程与CPU执行 Java中内置支持在一个进程中运行多个线程,线程的执行由JVM进行管理。每个线程从启动到结束的过程中可能经历多种状态,多个线程则意味着并发,而并发则涉及CPU的执行时间片。下图是三个线程分配到的CPU执行时间示意图,从启动到结束三个线程除了真正执行阶段,还包含了等待阶段。 执行时间 一个线程从启动到结束过程总,有两个时间概念我们要理解。其一是CPU时间,即线程真正执行的时间。其...

seaboat——a free boat on the sea.(公众号:远洋号) 4659

JAVA从入门到放弃

放弃吧。

qq_45926335的博客 476

Java 中可以放弃的技术?献给初学者

Java 已经发展了近20年,极其丰富的周边框架打造了一个繁荣稳固的生态圈随着时间推移,一些优秀的框架崭露头角,一些低效框架也慢慢退出历史舞台今天,我们就来看看有哪些框架,以后可以不用学啦。

LoveSummer 2万+

物理学建模及仿真平台Chrono安装

Chrono是一个基于物理学的建模和仿真基础设施,它是在C++中实现的独立于平台的开源设计。一个projectchrono库可以嵌入到一个软件项目中,例如在可变形地形上运行的轮式和履带式车辆、机器人、机械电子系统、顺应性机构和流体固体相互作用现象。系统可以由刚性和柔性/顺应性部件组成,并带有约束、电机和接触;部件可以具有三维形状,以便进行碰撞检测。然而安装还是出现了一些问题,所以在此总结。已经装好visual studio。

Already8888的博客 6501

Java发展到现在,哪些技术可以放弃了?

各位好啊,我是,作为java开发者,对于各类java开发技术、开发框架肯定是多少都要了解和知道的。但是作为已经发展了几十年的java开发生态,各类技术层出不穷,有的新技术新框架已经对旧技术旧框架产生了颠覆性的影响,当然还有一些旧技术压根就没流行过。今天我们来看下Java那些可以放弃的技术了。来源:zhihu.com/question/305924723/answer/557800752Java 至今已经发展了20年,其丰富的开源框架打造了一个繁荣稳固的生态圈。

会编程的蜗牛的博客 235

【项目分享】RailTracker: 火车票务数据采集与分析

从12306使用爬虫爬取火车站及车次信息、火车票价 通过本项目,我们将带领访问者手把手完成火车票数据采集、数据清洗、数据集成、可视化的一整个流程!

zhushatong的博客 3345

PyTorch多机训练Loss不一致问题排查指南:基于算子级一致性验证

比较二次训练过程中所有算子的误差,定位存在一致性问题的pytorch算子

Hi20240217的博客 1159

《Java从入门到放弃》文章目录

《Java从入门到放弃》文章目录(红色的表示还没编写) 《Java从入门到放弃》JavaSE入门篇:变量 《Java从入门到放弃》JavaSE入门篇:运算符 《Java从入门到放弃》JavaSE入门篇:程序结构 《Java从入门到放弃》JavaSE入门篇:数组 《Java从入门到放弃》JavaSE入门篇:练习——单身狗租赁系统(数组版) ...

十方上下 6034

保姆级教程:用Python+Mediapipe实时捕捉手势,驱动Unity虚拟手模型(附完整源码)

本文详细介绍了如何利用Python的Mediapipe库和Unity实现实时手势识别与虚拟手模型驱动。通过OpenCV进行图像采集,Mediapipe提供21个手部关键点识别,结合UDP通信协议实现Python与Unity之间的低延迟数据传输。教程包含完整源码、环境配置、核心代码实现及性能优化技巧,适用于VR教育、游戏开发等需要自然交互的场景。

weixin_42531779的博客 362

谈谈与Java的那些事(从入门到放弃,到再入门)

文章目录0 序言1 初识Java2 再识Java3 再入门4 一些感想 0 序言 本文纯属闲聊,不具有学习或参考的意义。 1 初识Java Java这个单词直到上大学的第一天才被我知道,记得当时还是面试卓越班的时候。为了介绍自己会一点编程,之前也看过一点Java(可以说几乎不会,不过之前诺基亚手机就可以经常看到Java的图标,不过当时的诺基亚好像是用qt写的,后面手机系统没有用qt写,真是可惜了,虽然还有qt quick,但是比起Android,还是有很大差别),不过不会读这个单词,当时面试的时候,就说了之

韩江雪de 小屋 675

Android T GPS 定位流程

Gps 定位

好记性不如烂笔头 1356

【CloudCompare教程】017:点云快速全局配准

点云数据的配准分为基于特征(特征点、特征线)的拼接和无特征拼接。特征点匹配的方法和全局ICP的方法。特征点的方法通过全局特征匹配达到全局配准,全局ICP的方法通过对变量空间进行搜索的方法达到全局最优解。

智慧空间实验室 3931

Java日志框架--从入门到放弃

一、写在前面 随着历史发展,Java语言涌现了不少优秀的日志框架,比如Log4j,Jul,Jcl,slf4j,logback等,它们之前存在了复杂的关系; 关系复杂: 多个接口、不同实现、各种转换器、复杂的桥接器; 一个应用会依赖各种三方包,三方包各种依赖不同的日志组件,管理不善会导致原有日志配置失效、应用启动失败; 一般情况下偶尔会发生日志组件相关问题,会经常记不起来各种日志组件以及基本...

chuqiang1101的博客 311

辐射制冷无规散射结构非球形散射体的结构优化与设计准则

本文针对辐射制冷材料中非球形散射体的光散射特性开展研究,提出了一种基于体积散射截面和不对称因子的综合评价方法。通过建立简化模型分析球体、圆柱体、长方体等六种几何形状在太阳波段的散射性能,发现金字塔形和圆锥形具有更强的后向散射能力。研究创新性地提出"反射因子SR=S(1-g)"这一评价参数,该参数与宏观反射率高度相关,为非球形散射体的优化设计提供了定量依据。仿真结果表明,合理选择散射体形状可显著提升辐射制冷材料的太阳反射率,为实现高效被动制冷提供了新的结构设计思路。

huanghm88的专栏 82

Java编程从入门到放弃的五个阶段

在这个阶段,信心开始动摇,但还保持着再坚持一下就能突破的幻想。此时认为Java不过如此,看着满屏的System.out.println,觉得自己已经掌握了编程精髓。当接触到微服务、分布式、高并发等更深入的话题时,终于意识到自己的极限。最后一次commit代码后,默默关闭IDE,卸载开发环境,将那些厚厚的技术书籍打包封存。虽然表面上还在坚持学习,但内心已经开始动摇,开始认真思考转行的可能性。不过值得注意的是,那些最终突破这个循环的人,往往都是在最想放弃的时候多坚持了一下。#### 第五阶段:彻底放弃期。

MRhypCVj的博客 277

RK3588开发板NPU加速YOLO目标检测完整实战教程

🚀 RK3588开发板NPU加速YOLO目标检测实战 本文详细介绍了如何在瑞芯微RK3588开发板上利用内置NPU加速YOLO目标检测的全流程: 1️⃣ 环境准备:配置RKNPU2 SDK和aarch64交叉编译器,搭建Ubuntu开发环境 2️⃣ 模型转换:从ONNX格式转换为专用RKNN模型,适配NPU硬件特性 3️⃣ 性能对比:NPU推理将处理时间从833ms降至50ms以下,帧率提升16倍 4️⃣ 实战应用:支持图像/视频流/摄像头实时检测,提供完整编译和运行命令 关键优势:专为边缘AI设计的6T

FJN110的博客 931

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Java技术栈,从入门到放弃,废了废了

DNS/HTTP/HTTPS协议。JVM性能监控与故障定位。整合数据库(事务问题)服务调用(负载均衡)

qwert 375

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java从入门到放弃

java从入门到放弃。

qwe3641585的博客 212

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

JavaEE 从入门到放弃(六):框架的选择

SSH 和 SSM 的简介与对比、选用 Spring Boot 的理由。

Evan 的博客 1万+

为什么那么多自学Java的后来都放弃了,总结起来就这些原因

首先告诉你的是,作为一个初学者想转行学习Java并不是很容易,Java本身是具有一定难度的,虽然说兴趣这东西可以让我们学习不累,但是有多少人学习是因为兴趣,或者有多少人知道自己的兴趣在哪?所以我很明确的告诉你,学习这事本来就是一件非常煎熬的事情,没有多少人愿意学习,但是或许你现在是身为一个应届生或者你是一个本职工作没有发展的,想转行的,所以对于学习任何东西开始,必须逼着自己学,不然可能你学什么都学...

Ybulingbuling的博客 6197
上一篇: 用高并发技巧解决redis热key问题
下一篇: 一个将老系统kafka消费者服务性能提升近百倍的方法
Java_LingFeng
博客等级 码龄4年 505粉丝 259原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值