BestACE / interaction

交互开发教程,包括h5开发、微信开发等。
31 stars 15 forks source link

java web之准备 #9

Open zptcsoft opened 6 years ago

zptcsoft commented 6 years ago
  1. [javaweb招聘]()
  2. 黑马程序员课程大纲
  3. ssh?
  4. ssm?
  5. 如何学习

经过网络调研,

  1. 了解java web的岗位需求与行业现状。
  2. 回答什么是SSH?SSH分别代表什么,在框架组合中起到什么的作业?
  3. 回答什么是SSM?SSM分别代表什么,在框架组合中起到什么的作业?
  4. SSH和SSM的区别,选择?
SDQ997 commented 6 years ago

12 沈丹青 根据CCID2013年人才市场的数据显示,目前每年IT行业的软件人才缺口至少50万,其中程序员、测试员等岗位的软件人才缺口达到30万,并且以每年20%的速度增加。其中Java程序员占整个高技能软件人员的25%。

SSH是 struts+spring+hibernate的一个集成框架,是目前较流行的一种web应用程序开源框架,分别代表Struts、Spring,Hibernate,用于构建灵活、易于扩展的多层Web应用程序, Struts进行流程控制,Spring进行业务流转,Hibernate进行数据库操作的封装。

SSM框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架,其中spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。

区别: 1.Struct和Spring-MVC都是负责取转发的,但是两者针对request的请求上面区别很大,Struct是针对一个Action类来进行请求的,即一个Action类对应于一个请求,所以类拦截,请求的数据类共享。而Spring-MVC则是针对于方法级别的请求的,也就是一个方法对应于一个请求,属于方法拦截,请求的数据方法不共享。 2.Spring-MVC的配置文件相对来说较为少,容易上手,可以加快软件开发的速度,亲身体验有效。 3.Spring-MVC的入口是Servlet级别的而Struct的级别是Filter级别的。 4.Hibernate是一种O/R关系型,即完成数据库表和持久化类之间的映射,而MyBitas是针对的SQL-Maping,个人理解是一种Hibernate把数据库给封装好以后,可以调用相应的数据库操作语句HQL,而MyBitas则是用的原始的数据库操作语句。 5.基于1中的原因,则Hibernate优化起来相对MyBitas较难。 6.MyBitas入门较快,而Hibernate掌握起来相对较难。 7.针对高级查询,Mybatis需要手动编写SQL语句,以及ResultMap。而Hibernate有良好的映射机制,开发者无需关心SQL的生成与结果映射,可以更专注于业务流程。 8.Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。

wabxq commented 6 years ago

18 张虓敏

SSH通常指的是 Struts2 做控制器(controller),spring 管理各层的组件,hibernate 负责持久化层。 SSM则指的是 SpringMVC 做控制器(controller),Spring 管理各层的组件,MyBatis 负责持久化层。

共同点

1.Spring依赖注入DI来管理各层的组件。 2.使用面向切面编程AOP管理事物、日志、权限等。

不同点

1.Struts2 和 SpringMVC 控制器(controller)控制视图和模型的交互机制的不同, Struts2是Action类级别,SpringMVC是方法级别,更容易实现RESTful风格。

Hibernate 和 MyBatis 两种ORM框架对比

两者的相同点

Hibernate与MyBatis都可以是通过SessionFactoryBuider由XML配置文件生成SessionFactory,然后由SessionFactory 生成Session,最后由Session来开启执行事务和SQL语句。其中SessionFactoryBuider,SessionFactory,Session的生命周期都是差不多的。 Hibernate和MyBatis都支持JDBC和JTA事务处理。

两者各自优势

MyBatis可以进行更为细致的SQL优化,可以减少查询字段。 MyBatis容易掌握,而Hibernate门槛较高。 Hibernate的DAO层开发比MyBatis简单,Mybatis需要维护SQL和结果映射。 Hibernate对对象的维护和缓存要比MyBatis好,对增删改查的对象的维护要方便。 Hibernate数据库移植性很好,MyBatis的数据库移植性不好,不同的数据库需要写不同SQL。 Hibernate有更好的二级缓存机制,可以使用第三方缓存。MyBatis本身提供的缓存机制不佳,更新操作不能指定刷新指定记录,会清空整个表,但是也可以使用第三方缓存。 Hibernate 封装性好,屏蔽了数据库差异,自动生成SQL语句,应对数据库变化能力较弱,SQL语句优化困难。 MyBatis仅实现了SQL语句和对象的映射,需要针对具体的数据库写SQL语句,应对数据库变化能力较强,SQL语句优化较为方便。

总结

SSM和SSH不同主要在MVC实现方式,以及ORM持久化方面不同(Hiibernate与Mybatis)。SSM越来越轻量级配置,将注解开发发挥到极致,且ORM实现更加灵活,SQL优化更简便;而SSH较注重配置开发,其中的Hiibernate对JDBC的完整封装更面向对象,对增删改查的数据维护更自动化,但SQL优化方面较弱,且入门门槛稍高。

资料链接

javaweb三大框架(ssh)知识点总结 ssh 常见面试题 SSM框架(Spring+SpringMVC+MyBatis)整合集 SSM教程(简书)

shelyer commented 6 years ago

29 郑可琪 1.在企业的职位可分为:软件工程师、系统架构师、售前技术工程师、技术经理、项目经理、测试工程师等。

企业级应用开发,大到全国联网的系统,小到中小企业的应用解决方案,Java都占有极为重要的地位

网站开发,当然就是JSP+Servlet+JavaBean,一直以来都相当流行

移动领域,最典型的应用是手机游戏(国内主要是这方面)

行内现状: 随着科技的不断发展,Java的社会市场需求也在不断的增加

2.官方的说法:SSH是 struts+spring+hibernate的一个集成框架,是目前较流行的一种web应用程序开源框架。

个人的见解:SSH不是一个框架,而是把多个框架(Struts、Spring以及Hibernate)紧密的结合在一起,用于构建灵活、易于扩展的多层Web应用程序。

SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。

SSH不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离,耦合度降低,系统 的灵活性更好,可复用性高。同时,框架为我们提供了一些基础性的服务,使我们的开发更加简单,大大提高开发效率。

3.SSM(Spring+SpringMVC+MyBatis)框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架。

其中spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。

4.如果比较两者的区别的话主要比较Struct和Spring-MVC以及Hibernate和MyBatis

Struct和Spring-MVC都是负责取转发的,但是两者针对request的请求上面区别很大,Struct是针对一个Action类来进行请求的,即一个Action类对应于一个请求,所以类拦截,请求的数据类共享。而Spring-MVC则是针对于方法级别的请求的,也就是一个方法对应于一个请求,属于方法拦截,请求的数据方法不共享。

Hibernate是一种O/R关系型,即完成数据库表和持久化类之间的映射,而MyBitas是针对的SQL-Maping,个人理解是一种Hibernate把数据库给封装好以后,可以调用相应的数据库操作语句HQL,而MyBitas则是用的原始的数据库操作语句。

SSH个人虽然感觉很笨重,但是对于理解MVC模型乃至IOC来说还是不错的,蛮适合练手的,但是SSM则是使用起来让人感觉飞快,无论面向OOP还是面向AOP编程,都给人一种通透的快感。

选择ssh。