简单聊一聊SSM框架

SSH (Spring+Struts+Hibernate)
进化为
SSM (Spring+SpringMVC+MyBatis)
为什么?
1.Struts的优势在于静态注入,插件机制和拦截器链,但是struts存在漏洞,经常会被作为攻击点进行冲击。相比更加安全简单的SpringMVC,开发者渐渐开发放弃了它。
2.hibernat缺点很明确,如果涉及到多张关联表的调用时:
1. 多表关联等比较复杂,使用的成本并不低;
2. 效率比较低,在大型项目中很少会使用到它,因为sql都是自动生成的,不太好进行人工的优化。

Spring

1.要说到Spring就不得不提起IOC(控制反转)AOP(面向切面编程)
2. Spring是一个轻量级的java开发框架,单词的中文名为春天。意味Spring着结束了传统J2EE开发的寒冬。02年出现,然后兴起于03年,直至今日,Spring已经取得了无数成绩。

IOC(控制反转)

英语单词为Inversion of control。它实现了代码的低耦合。其主要含义是:一个对象依赖的其他对象会通过被动的方式传递进来,而不是这个对象查找或者创建依赖对象。
简单来说IOC就是把以前下层决定上层 给转换成上层决定下层。比如建造一辆汽车,以前传统是先建轮子,然后根据轮子建底盘,根据底盘建车身,然后整辆车。但是如果有一天老板说,哎呀我们想把轮子加宽2厘米。这可咋整啊,那这样轮子,底盘,车身,整车都要依次改变,就像蝴蝶效应一样。这无疑是对程序员不友好的。而IOC就可以解决,它是让我们先决定整车,再决定车身,然后底盘,然后轮子。这样要改变轮子就只用改变轮子而不用全改。实现了低耦合。

AOP(面向切面编程)

关于AOP,初学者只要知道它是用于解耦业务代码和公共服务代码(如日志、安全、事务等)。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
在Spring中提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的–完成业务逻辑–仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。

SpringMVC

首先MVC,MVC是一种很流行的框架,通过把Model,View,Controller分离,把较为复杂的web应用分成逻辑清晰的几部分,是为了简化开发,减少出错。还是为了组内开发人员之间的配合。总之就是一种分层工作的办法。springMVC,是spring的一个子框架,当然拥有spring的特性,如依赖注入DI(依赖关系也就必须由IOC容器负责起来。负责的方式就是DI——依赖注入)。

MyBatis

ORM(关系对象映射),MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。
MyBatis与Hibernate的区别就是
1.Hibernate是完全ORM框架,sql自动生成,优化空间小
2.MyBatis是半自动的ORM框架,要手写sql。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值