1. 事务管理简介及环境搭建
(1) 请回顾下事务具有哪些特性,分别是什么含义?
提交、回滚、获取事务状态信息
(2) 说出DataSourceTransactionManager与HibernateTransactionManager应用场景?
DataSourceTransactionManager:使用JDBC或MyBatis进行持久化数据时使用
HibernateTransactionManager:使用Hibernate进行持久化数据时使用
2. 事务管理-代码编写
(1) Spring的TransactionDefinition接口中定义了哪些事务相关常量?
事务隔离级别、事务传播行为、事务默认超时时限,以及对它们的操作
(2) 你是如何理解事务的传播行为的?
事务A的方法调用事务B的方法时,事务B方法该如何进行的行为。
3. 事务管理-AspectJ的AOP配置方式管理事务
(1) 请描述AspectJ的AOP配置方式管理事务的spring配置信息有哪些?
(2) 事务通知标签的子标签有哪些,是什么意思?
<tx:advice>:事务通知标签。transaction-manager:事务管理器
<tx:attributes>:配置事务属性。
Name:需要配置的方法。
isolation="DEFAULT":事务隔离级别。
propagation="REQUIRED":事务传播行为,默认为如果当前没有事务就创建一个事务,如果已经存在一个事物,则加入到这个事务中。
read-only:只读。当执行的事务只读取时可设置为true,提高查询速率。
rollback-for:回滚。
No-rollback-for:不回滚。
Timeout:超时时限,单位为秒。超出时限事务断开。
4. 事务管理-事务注解管理事务
(1) 请描述事务注解管理事务的spring配置信息有哪些?
(2) <tx:annotation-driven>需要配置哪些属性?
只需配置事务管理器
5. MVC介绍
(1) 什么是MVC?
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,它是一种软件设计典范,是一种软件架构设计分层模式。
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
View(视图)是应用程序中处理数据显示的部分。
Controller(控制器)是应用程序中处理用户交互的部分。
(2) 简述Model1和Model2的优缺点?
①Model1:中心是JSP页面,JSP页面中结合业务逻辑、服务端处理过程和HTML等,这样就在JSP页面中同时实现了业务逻辑和流程控制,从而快速开发
优点:简单、快速开发、适用小规模开发
缺点:业务逻辑和表示逻辑混合在JSP页面中没有进行抽象和分离,JSP负载较大。不利于应用系统业务的重用和改动,不便维护。
②Model2:基于MVC模式的框架。通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。
优点:具有组件化的优点更易于大规模系统的开发和管理,职责划分清晰
缺点:不适合小项目开发
6. SpringMVC简介
(1) 什么是SpringMVC?
是spring框架的一部分(子框架),实现了对Servlet技术进行封装。
(2) 目前市场上流行的MVC框架有哪些?
SpringMVC、Struts、Jfinal
7. SpringMVC运行原理
(1) 请描述SpringMVC运行原理?
浏览器发送请求到中央调度器/前端控制器(DispatcherServlect),中央调度器对请求进行判断。并将请求发送给处理器映射器,处理器映射器根据接受到的请求找到相应的处理器,并对请求封装成处理器执行链对象返还给中央调度器。中央调度器将处理器执行链发送到处理器适配器,处理器适配器根据收到的请求找到对应的处理器进行处理,处理器返回ModelAndView对象给处理器适配器,处理器适配器再把ModelAndView对象返还给中央调度器。中央调度器将ModelAndView对象发送到视图解析器(对视图进行解析,由逻辑视图名解析成物理视图名),视图解析器解析后将view对象返还给中央调度器。中央调度器将view对象发送到视图组件,视图组件将视图进行渲染并将view对象发送给中央调度器,中央调度器再返还给浏览器
(2) SpringMVC底层运行主要涉及哪些组件?
中央调度器、处理器映射器、处理器适配器、处理器、视图解析器、视图
8. 配置式开发
(1) 如何搭建SpringMVC配置式开发环境?
①导入jar包
②配置web.xml,注册SpringMVC前端控制器(中央调度器)
③编写SpringMVC后端控制器
④编写SpringNVC配置文件,注册后端控制器
⑤编写跳转资源页面
(2) 使用SpringMVC在原有Spring jar包基础上又导入哪些Spring 的jar包?
spring-webmvc-4.1.6.RELEASE.jar
spring-web-4.1.6.RELEASE.jar
spring-context-support-4.1.6.RELEASE.jar
9. 配置式开发
(1) 使用SpringMVC是如何实现资源跳转的?
(2) 配置式开发,注册后端控制器需要注意什么问题?
在web.xml设定配置文件springmvc的访问路径和文件名称、请求路径名要与拦截的后缀相同并且以“/”开头。
10. urlpattern配置问题
(1) 前端控制器的拦截路径如何配置?
①*.xx:拦截controller中的路径尾部以.xx结尾的请求
②/:当请求格式为“ref”时,必须使用。但是所有静态资源都会被拦截
解决静态资源被拦截:
①在web.xml中配置
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.xx</url-pattern>
</servlet-mapping>
(放行后缀名为.xx的文件)
②在spring.mvc中配置
<mvc:default-servlet-handler/>
③在spring.mvc中配置
<mvc:resources location=”/文件名/” mapping=”/文件名/**”>
(放行此文件名路径下的所有文件)
(2) 如果拦截路径配置成 “/”会有什么问题,配置成 “/*”会有什么问题?
“/”:所有静态资源都会被拦截
“/*”:拦截所有访问,导致404错误。
11. 注解式开发-入门
(1) 使用SpringMVC注解式开发项目环境搭建步骤?
①后端控制器无需实现接口,添加相应注解
@Controller//表名将当前类交给spring容器管理
@RequestMapping("/springmvc")//起到限定范围的作用
②springmvc配置文件无需注册controller
③springmvc配置文件中添加组件扫描器、注解驱动
(2) SpringMVC的配置文件中需要配置哪些内容?
12. 注解式开发-入门
(1) 在后端控制器类体上可以加哪些常用的注解?
@Controller//表名将当前类交给spring容器管理
@Scope("prototype")//作用域
@RequestMapping("/springmvc")//类体上起到限定范围的作用。方法上,请求映射路径