就现在的趋势来说,Spring无疑是一家独大的,它有太多利益

  现在在Java EE开发中,Spring已经成为和Java核心库一样的基础设备,所以说假如想成为一个合格的Java程序员,Spring必定绕不开。另一方面,假如掌握了Spring体系,Java基本上就算入门了,就有能力进行一些有用级的开发了。
  但Spring本身也是日渐凌乱,衍生项目越来越多,但最最核心的概念依旧是IOC和AOP,掌握了这两个概念,再把Spring MVC学会,再学习其他的衍生项目就会滑润许多。
  一同,因为Spring本身就运用了许多高雅的规划理念,所以学习Spring的进程,也是加强Java基础常识学习的进程。因此等你掌握了Spring,原本许多你了解不透彻的Java特性,此刻就会茅塞顿开,包括接口、抽象类等。

  在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也规划的非常凌乱、非常精巧。就不可避免的带来以下副作用:

  学习本钱高
  配备凌乱
  调优困难
  前两点不难了解,单说“调优困难”。
  因为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不只需学,而且要学深,学透。”

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

  Spring是Java编程的基础设备,但真要进入到实践项目的开发,还有些东西绕不过,包括 MySql,Mybatis,Redis,Servlet等,但假如你经过Spring的洗礼,这些东西相对就简略多了,以我的经历,1个月的时间足够了。

  学习编程就是一个由混沌到有序的进程,所以你在学习进程中,假如一时碰到了解不了的常识点,大可不必懊丧,更不要气馁,这都是正常的不能再正常的工作了,不过是“人同此心,心同此理”的暂时罢了。

  最后我的内容必定有一些果断,还请见谅。

  期望我写的这些能够给你一些帮助,让你的学习更顺利一些。

最新文章

  1. NHibernate之映射文件配置说明
  2. 手把手教你玩转nginx负载均衡(三)----配置虚拟服务器网络
  3. Android FragmentTransactionExtended:使Fragment以多种样式动画切换
  4. html5高级
  5. svn ignore
  6. lag 和 lead
  7. Django:使用PyCharm创建django项目并发布到apache2.4
  8. 基于LR的数据库性能测试
  9. [BZOJ 1257] [CQOI2007] 余数之和sum 【数学】
  10. Django学习笔记(精简版)
  11. GnuWin,包括FLEX BISON GREP
  12. BT5 firefox Flash插件问题
  13. js 数组API之filter的用法
  14. Concurrent包常用方法简介
  15. PTA3
  16. 『TensorFlow』读书笔记_降噪自编码器
  17. SpringMVC Controller 单例 多例
  18. 本地DNS解析
  19. Django 添加应用
  20. tomcat启动窗口报错&&eclipse使用maven编译时报错

热门文章

  1. zz错误集锦
  2. [2019BUAA软工助教]团队alpha得分总表
  3. 关于lambda总结-持续更新
  4. 软件 ---- intelij IDEA安装
  5. re2c安装
  6. 端口快速扫描程序(c#版 一次可发起1000个连接)
  7. .net core中serilog的基本使用
  8. Python-函数参数类型及排序问题
  9. 纯C语言实现循环双向链表创建,插入和删除
  10. python 对过时类或方法添加删除线的方法