1,什么是Spring
(1):spring它是一个轻量级的ioc和aop容量级的框架
(2):spring提供了事务的管理。
(3):spring是一个容器,也就是java对象的创建交给了spring容器。
(4):spring对一些框架提供了很好的集成支持。
(6):spring是一个非侵入式的框架
2,我们对IOC和AOP的理解
(2.1):IOP:也就是invet of control (控制反转)也叫做注入依赖,相当于java的创建对象交给spring容器,控制权被反转
(2.2):AOP:面向切面,他的本质是个拦截器,项目中的事务和日志就很好的体现了他的功能,开启事务,提交事务,N个界面,都需要事务来提交,日志:比如通过记录了某个用户做了什么事情,且用户的信息添加到了那里去,aop的底层原理是过滤器,相当于简化了大量的代码量。
3,spring的注入方式有哪些
(3.1):setter注入,构造注入,配置,接口注入,它是侵入式的,现在都不怎么会使用这个方法了。
4,请问SpringMVC和Struts2的区别是什么
(4.1):springmvc的入口是servlet,而struts2是filter(过滤器)。
(4.2):springmvc的实现会比struts2快,因为springmvc是基于方法的设计,而struts2是基于类,,每发一次请求都会实例一个action。
(4.3):springmvc使用很简洁,效率比struts2高,处理ajax更方便。
5,Hibernate和Mybatis的区别是什么
(5.1):开发效率方面:
hibernate它已经全部封装好了,可以直接使用,更好的开发系统。
mybatis它是半自动化了,sql语句需要我们自己写,稍微繁琐。
(5.2):SQL语句优化:
hibernate自动生成sql,会消耗一些性能。
mybatis需要我们手动写,可以避免不必要的查询,提高系统性能
(5.3):对象管理方面:
hibernate是完整的ORM框架,不需要观察底层源码,只需要管理对象就好。
mybatis需要自行管理映射关系
6,请问SSM和SSH有什么区别
SSM是指:struts2,spring,hibernate
SSH是指:spring,springmvc,mybatis
只要说struts2和springmvc的区别,mybatis和hibernate的区别就可以了。
7,Hibernate的缓存机制是什么
(7.1)他又两大类:一级缓存:
Session级别缓存,当session关闭时,它所管理的一级缓存也会被立即清理,应用程序无权干预。
SessionFactory二级缓存,存在于整个应用程序当中,一个应用程序对应一个SessionFactory,该缓存可以进行配置和更改,并且可以动态加载和卸载。
8,Mybatis的缓存机制是什么
(8.1)mybatis的一级缓存就是sqlsession级缓存,也就是mybatis的会话级缓存。就比如说,我去数据库查询一个用户id为1的用户,我查询出来之后sqlsession会对该对象进行保存,以HashMap的形式进行保存,
当第二次用同一个sqlsession进行查询用户id为1的对象的时候,它不会对数据库进行操作,而是直接到HashMap直接取值。以及缓存默认开启。sqlsession关闭之后,一级缓存就会清空。
二级缓存mapper:二级缓存是mapper级别的缓存,作用域是同mapper的同一个namespace。不同的sqlsession两次执行相同的namesapce下的sql语句,会执行相同的sql,第二次查询会直接读取缓存中的数据,不会再去查询数据库,sqlsession对mapper进行了增删改操作并提交之后,二级缓存会被清空。二级缓存默认关闭,二级缓存也是基于HashMap进行存储