Spring 面试题
1. Spring框架有哪些模块?
Spring框架由七个模块组成组成,这7个模块(或组件)均可以单独存在,也可以与其它一个或多个模块联合使用,如下所示:
(1) Spring 核心容器——IoC容器
(2) Spring AOP
(3) Spring ORM
(4) Spring DAO
(5) Spring WEB
(6) Spring上下文(Context)
(7) Spring MVC
2. 为什么要使用Spring框架,它有什么优点?
(1) 轻量级的框架
(2) 非侵入性的
(3) 可以整合其它的框架,比如Struts, Hibernate等
(4) 可以提供事务管理
3.Spring框架的工作机制是什么?
(1) Spring MVC将所有的请求都提交给DispatcherServlet,它会委托应用系统的其它模块负责对请求进行真正的处理工作。
(2) DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller。
(3) DispatcherServlet请请求提交到目标Controller。
(4) Controller进行业务逻辑处理后,会返回一个ModelAndView。
(5) Dispathcher查询一个或多个ViewResolver(视图解析器),找到ModelAndView对象指定的视图对象。
(6) 视图对象负责将结果返回给客户端。
4.怎么使用Spring配置事务 ?
Spring同时支持编程式事务策略和声明式事务策略,大部分时候都采用声明式事务策略。
声明式事务管理的配置方式,通常有以下4种:
(1) 使用TransactionProxyFactoryBean为目标Bean生成事务代理的配置。此方式是最传统、配置文件最臃肿、最难以阅读的方式。
(2) 采用Bean继承的事务代理配置方式,比较简洁,但依然是增量式配置。
(3) 采用BeanNameAutoProxyCreator,根据Bean Name自动生成事务代理的方式。这是直接利用Spring的AOP框架配置事务代理的方式,需要对Spring的AOP框架有所理解。但这种方式避免了增量式配置,效果非常不错。
(4) 采用DefaultAdvisorAutoProxyCreator,直接利用Spring的AOP框架配置事务代理的方式,效果非常不错,只是这种配置方式的可读性不如第3种方式。