请问springMVC/struts2,spring,Hibernate/Mybatis框架的区别,各自的作用,适合做什么大小项目,求解答
springmvc ,mybatis, spring几乎成为企业应用的标准了,springmvc 是在spring基础上的web框架
一般情况下Struts、Spring 和Hibernate,Spring、SpringMvc和mybatis这样组合框架去开发,这也就是我们常说的SSH和SSM。其中Struts2主要是用于拦截用户请求,比如你登录一个网站时,后台要去对比你的用户名和密码是否正确,那么struts2的配置文件中就需要写明对比的逻辑所在的controller。spring呢主要是用来管理对象,它最显著的特点是依赖注入和面向切面,你可以百度一下这两个术语,Hibernate是用于处理数据库数据,它处理的每一张表对应一个对象,这个在查询数据的时候特别方便,但是Hibernated的知识体系,个人认为还是比较复杂的,而且它的所有处理逻辑都封装好了,HQL的格式都是固定的,所以呢现在大部分人比较青睐Mybatis,因为Mybatis是半自动的,可以自己写SQL,而且格式和普通的SQL一样,所以不必担心偶尔写错什么的,这个你用用就会发现它的好处了。额,都说到了吧,至于适合做什么项目,这个还是要就项目的需求来看的,反正都能做大型的系统,不过讲真,SSM框架确实比SSH要方便些,不过如果你做的项目不必设计前端,或者没有JSP的相关东西的话,都不必非得用三个框架,总之就是取决于需求啦。我就写到这里,欢迎补充!
springmvc ,mybatis, spring几乎成为企业应用的标准了,springmvc 是在spring基础上的web框架
springmvc和Struts都属于控制层框架,springMVC与spring整合更好些吧(个人认为),springMVC是基于servlet的而Struts2是基于filter(这个涉及到servlet和filter的区别了),springMVC配置文件要比Struts少,springMVC是基于方法而设计的,Struts是基于类,也就是说没发一次请求都会实例一个action。另外springMVC返回页面只要在controller里return页面就可以了Struts则要配置文件配置,如果不返回页面而是要返回数据(例如ajax异步请求)springMVC只需要加一个注解@ResponseBody即可。
spring应该是大多数企业级web开发都要用到的一个框架了,他的核心是bean(ioc控制反转又叫依赖注入),aop(面向切面编程)这两个东西我只能知道个大概就不误人子弟了。spring可以整合好多开源的框架,像你之前说的都可以。
hibernate和mybatis是属于持久层的框架(和数据库打交道的),hibernate是一个orm框架它对jdbc进行了封装,一般简单的增删改查直接掉方法就可以了,如果你想深入了解或使用hibernate是比较难的,sql优化也比较难。hibernate简单的数据库操作不会写sql当然如果复杂的话可能就要用到hql。mybatis就需要你手动写sql在配置文件里了(如果不使用第三方插件的话),他相对于hibernate的优点在于配置sql灵活上手比较容易,当然开发效率上可能没hibernate好(前提你得用好hibernate,如果用不好hibernate有很多麻烦事)。mybatis缺点在于扩展不好,本身不带日志需要log4j进行日志记录,mybatis封装比较简陋有些东西可能需要自己去实现(例如mybatis没有通用分页,要么用第三方插件要么自己用mybatis拦截器自己写一个通用分页)。
个人的总结,如有不合适的地方请各位大神给与指正。