Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java web之准备 #9

Open
zptcsoft opened this issue Mar 8, 2018 · 3 comments
Open

java web之准备 #9

zptcsoft opened this issue Mar 8, 2018 · 3 comments

Comments

@zptcsoft
Copy link

zptcsoft commented Mar 8, 2018

  1. javaweb招聘
  2. 黑马程序员课程大纲
  3. ssh?
  4. ssm?
  5. 如何学习

经过网络调研,

  1. 了解java web的岗位需求与行业现状。
  2. 回答什么是SSH?SSH分别代表什么,在框架组合中起到什么的作业?
  3. 回答什么是SSM?SSM分别代表什么,在框架组合中起到什么的作业?
  4. SSH和SSM的区别,选择?
@zptcsoft zptcsoft changed the title java web java web之准备 Mar 8, 2018
@SDQ997
Copy link

SDQ997 commented Mar 8, 2018

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
Copy link

wabxq commented Mar 8, 2018

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
Copy link

shelyer commented Mar 8, 2018

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。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants