Spring -> Servlet -> Spring MVC -> Spring Boot
JPA与Hibernate
JPA作为一个持久化规范,仅定义了OR映射的规范(包括一系列注解),但本身并没有具体的实现。
在实际应用中,JPA的具体实现既有Hibernate,也可以通过spring和把jpa和Mybatis结合起来。但因为Hibernate的高可配性,因此从概念设计上来说, Hibernate对JPA的实现显得更加“自然”。
但是,无论是业界还是我本人,偏爱Mybatis的原因和JPA关系不大,关键是因为Hibernate相对不够灵活,从而带来的高学习成本和调优成本。
当然,毫无疑问,Hibernate是一个非常优秀的框架。至于你所在的团队是否选择它,肯定是综合考量的结果。其中既包括团队的技术现状(例如是否有Hibernate大牛),也包括项目的规模,及灵活性需求等。
而在其他文章中,我对Hibernate的观点,主要是针对高效学习来讲的,毕竟人的精力是有限的。
关于大数据
前面的两篇文章,面向的主要是Java web开发者。
当然,Java开发,除了Web,还有大数据等方向。虽然都是学习Java,但内容肯定有所偏重。这里我就简单阐述下,以免对其他方向(例如大数据)的学习者有所误导。
做大数据开发,无论是做Hadoop的Map Reducer,还是Storm的topology(拓扑),最常见的实现方式还是Java。从这一点来说,对Java基础知识的学习,大家都是一样的。
但差别在是否要学习Spring?这决定于你对自己的定位!
如果你把仅自己定位在数据处理上,只需编写Map Reducer或topology,那么你完全可以不学习Spring。
但是,一个完整的大数据系统,必然是一个综合系统。其中包括系统配置、数据的收集、传输、存储、展示等子系统。而如何把这些子系统整合成一个综合系统,则是Spring的专长,这也是JavaEE面临的核心问题。
因此,从系统开发角度来说,大数据开发者依然应该学习Spring。只不过从优先级上来说,完全可以把Spring往后排一下。
最后
上面是我的一家之言,肯定有错谬之处,见谅!
最后我们该如何学习?
1、看视频进行系统学习
这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。
另外,我自己也珍藏了好几套视频资料躺在网盘里,有需要的我也可以分享给你:
2、读源码,看实战笔记,学习大神思路
“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。
Spring源码深度解析:
Mybatis 3源码深度解析:
Redis学习笔记:
Spring Boot核心技术-笔记:
3、面试前夕,刷题冲刺
面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。
关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:
只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。
人生短暂,别稀里糊涂的活一辈子,不要将就。
-1714582069765)]
只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。
人生短暂,别稀里糊涂的活一辈子,不要将就。