Java Web学习者,可以跳过SSH直接学习SSM吗?
个人建议:Struts舍弃,Hibernate了解,Spring深入。
关于SSH
我刚入行的时候,SSH还是挺火的,额...大概是十年前了。
Spring:首先现在Spring依然很火,也归功于Spring一直在快速迭代升级,现在大多数项目都在用Spring;而且现在Spring下面的子框架非常的多,这里说的Spring主要还是指Spring Framework。
Hibernate:一直没有被淘汰,但是一直也火不起来,现在更多的项目在用Mybatis或者JPA。说实话,我觉得Hibernate还是挺强的,但是想用好Hibernate不容易。
Struts:Struts1和2我都有用过,到现在已经没落了,新项目很少有人在用,至少我们好多年前就不用了(除非是一直维护的老项目),现在Struts的工作基本上被Spring MVC代替了。而且Struts一而再,再而三的曝出漏洞,在信息安全方面有着很大的隐患。
关于SSM
Spring上面已经说过了,就说说另外两个:
Spring MVC:轻量级的MVC框架;通过Dispatcher Servlet, ModelAndView和 View Resolver,似的Web应用开发变得更加容易。
Mybatis :ORM框架,支持普通SQL查询,存储过程、高级映射;通过简单的XML或注解,用于配置和原始映射,将接口和Java的POJO映射成数据库中的记录。
现在学什么?
对于SSH来说,Spring可以好好学习一下(当然要学习新版本),Hibernate可以了解一下,Struts就不要再学习了。
现在单体应用,使用最多的是SSM组合:Spring + Spring MVC + Mybatis;
关于JPA,我认为大多数的系统不适用,它适用于微服务场景下,对数据的查询都是单表查询(SQL简单),大多数公司的项目都到不了这个程度;不过虽然可能用不上,还是要学习一下。
Spring boot:现在很流行的一个框架,提供了各种启动器、简化配置、方便集成、有助于开发效率。
如果接触前后端分离,甚至是微服务的架构,需要熟悉HTTP接口、Rest API,最好可以掌握一套微服务框架,例如Spring Cloud、或者Dubbo(如果不是工作需要,我推荐Spring Cloud)。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
所谓SSH,是指Struts+Spring+Hibernate,其中Struts进行流程控制,Spring进行业务流转,Hibernate进行数据库操作的封装。对于我而言,Struts只是在学校时,J2EE的课本中有描述过Struts2,但是真心没有学过,当时也认真看过,但是没有什么感觉。Spring是一个不得不说的轻量级框架,从开始工作的项目Spring MVC到随后的Spring Boot都是在和Spring打交道,做Java Web开发,Spring几乎是其中的核心,必须有足够的重视,并且对其有研究和理解。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate是在做基础框架时接触过,其单表的增删改查和方便,但是多表的关联查询、事务控制、主外键设置需要进行深入学习和研究,才能进行熟练的使用,对于初学者而言,我不推荐使用Hibernate。
所谓SSM,是指Spring+SpringMVC+MyBatis,其中spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制,MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。我也几乎是在这条技术线上入门的,所以从初学者的角度来说,跳过SSH,直接学习SSM是没有问题的。
还记得,但是学习Spring的时候,真心不理解依赖注入和控制反转,培训的前辈自己解释还是不明白,就带着种种的困惑投入到Java Web开发中,不理解,但是会用,在使用过程中,注解理解自动注入、AOP面向切面编程等概念和使用场景,在BeanFactory和FactoryBean的摸索中逐渐成长。MyBatis是一款优秀的持久层框架,sql集中清晰,事务易于控制处理,避免SQL注入的优点,使其得到较大规模的使用,而在我三四年的程序员生涯中,MyBatis也是使用最多的持久化组件。
Java Web的学习,要更多的结合公司的技术线和项目开发,边学边实践,那样效果最佳,而只想着怎么学,不动手实践,怎么说,怎么推荐都是白搭。
作者:夕阳雨晴,欢迎关注我的头条号:偶尔美文,主流Java,为你讲述不一样的码农生活

