1.什么是框架?
框架(Framework),阐述:IT中的框架特指为解决一个开放性问题而设计的具有一定约束性的支撑结构。
在此结构上可以根据具体问题扩展、安插更多的组成部分,从更迅速和方便地构建完整的解决问题的方案。
1)首先框架本身是不完整的,不能解决特定问题,但是可以在此基础上帮助你快速解决特定问题。
2)框架本身就是为了扩展而设计的。
3)框架里面可以为后续扩展的组件提供很多辅助性、支撑性的方便易用的实用工具。
2.spring框架是什么?它的两大核心内容?
spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要针对JavaBean的生命周期进行管理的轻量级容器,可以单独使用。也可以和strus,ibatis等框架组合使用。
1、IoC(控制反转)、DI(依赖注入)
IoC:
本来在service中调用dao,就要自己new 一个Dao对象。
现在,把new这个过程,或者这个权利交给spring框架去做,当需要dao对象时,从spring容器中获取。
2.AOP(面向切面编程)
AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
核心:使用动态代理的方式在执行前后或出现异常后作出相关逻辑。
AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码
经典应用:
事务管理:执行方法前,开启事务、执行完成后关闭事务、出现异常后回滚事务
日志:在执行前进行日志处理
权限判断:在执行方法前,判断是否具有权限
性能监视、安全检查、缓存等
3.AOP是什么?你都拿它做什么?
参考2
4.ibatis(myBatis)和hibernate有什么不同?
相同点:
都是java中的orm框架、屏蔽jdbc api的底层访问细节,使用之后就不需要与jdbc api打交道,就可以完成对数据库的持久化操作。减少直接使用jdbc api的繁杂操作。
iBatis的好处:屏蔽jdbc api的底层访问细节--》将SQL语句与java代码进行分离;提供了将结果集自动封装称为实体对象和对象的集合的功能。queryForList返回对象集合,用queryForObject返回单个对象:提供了自动将实体对象的属性传递给SQL语句的参数。
hibernate的好处:hibernate是一个全自动的orm映射工具,他可以自动生成SQL语句,并执行返回java结果。
不同点:
1.最大的不同点:hibernate可以自动生成SQL语句,而iBatis不能
2.但是因为hibernate的SQL语句是自动生成的,所以不能够写出复杂SQL语句,但是iBatis可以自己写。
3.iBatis比hibernate简单得多。
5.Hibernateying映射对象的状态
四种状态:
1.临时状态(transient)(瞬态):刚用new 语句创建,还没有被持久化,并且不处于Sesssion 的缓存中。处于临时状态的Java 对象被称为临时对象。
2.持久化状态(persistent):已经被持久化,并且加入到Session 的缓存中。处于持久化状态的Java 对象被称为持久化对象。
3.删除状态(removed):不再处于Session 的缓存中,并且Session 已经计划将其从数据库中删除。处于删除状态的Java 对象被称为删除对象。
4.游离状态(detached):已经被持久化,但不再处于Session 的缓存中。处于游离状态的Java 对象被称为游离对象。