1-SpringMVC的工作流程是什么
答:流程
1.用户发送请求到前端控制器DispatcherServlet
2.DispatcherServlet 收到请求调用HandlerMapping处理器映射器。
3.处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并送回给DispatcherServlet。
4.DispatcherServlet调用HandlerAdapter处理器适配器
5.HandlerAdapter 经过适配调用具体的处理器(Contoller,也叫后端控制器)。
6.Cortoller执行完成返回ModelAndView
7.HandlerAdapter 将controller执行结果ModelAndVlew返回给DispatcherServlet
8.DispatcherServlet 将ModelAndView传给ViewReslover视图解析器
9.ViewReslover解析后返回具体View
10.DispatcherServlet 根据View进行渲染视图(即将模型数据填充至视图中)。
11.DispatcherServlet 响应用户
2-谈谈对mybatis中的sqlSession、
sqlSessionFactoryBuild和sqlSessionFactory的理解。
答:01 sqlSession:封装了对数据增删改查的方法。sqlSession 足通过sqlSessionFactory创建的.sqISessionFactory足通过sqlSessionFactoryBuild创建的sqlSessionFactoryBuild是创建sqlSessionFactory 时使用的.一且创建成功后就不需要salSessionFactoryBuild的,因为sqlSession是通过sqlSessionFactory创建的,可以可以当做工具类使用。
sglSessionFactory足个接口, 类里重载 了opensession 的不同的方法使用范围是在整个运行范围内,一旦创建可以重复使用.可以当做单实例对象来管理sqlSession是面向用户的一个操作数据库的接口,每个线程都应该有自己的sqlSession并且sqlSession不可以共享,线程是不安全的,打开一个 sqlSession用完之后就要关闭。
02使用MyBatis的主要Java 接口就是SqlSession,可以通过这个接口来执行命令,获取映射器示例和管理事务。在介绍SqlSession 接口之前,我们先来了解如何获取一个SqlSession实例。SglSessions 足由SqlSessionFactory 实例创建的。SqlSessionFactory 对象包含创建SqlSession实例的各种方法。而SqlSessionFactory 本身是由SqISessionFactoryBuilder 创建的,它可以从XML、 注解或Java配置代码来创建SqlSessionFactory。
3-Spring是什么,有哪些模块?
答:Spring是一个轻量级的loC和AOP容器框架。
是为Java应用程序提供基础性服务的一套框架, 目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。
常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。
主要由以下几个模块组成:
SpringCore:核心类库,提供I0C服务;
Spring Context:提供框架式的Bean访问方式,以及企业级功能(INDI、定时任务等);
Spring AOP: AOP 服务;
Spring DAO:对JDBC的抽象,简化了数据访问异常的处理;
Spring ORM:对现有的ORM框架的支持;
Spring Web:提供了基本的面向Web的综合特性,例如多方文件上传;
Spring MVC:提供面向Web应用的Model-View-Controller实现。
4-Spring 的优点是什么?
答:(1)sping 属于低侵入式设计,代码的污染极低;
(2)spring 的DI机制将对象之间的依赖关系交由框架处理,减低组件的调和性;
(3)Spring提供了AOP技术,支持将一些通用任务, 如安全、事务、日志、权限等进行集中式管理,从而提供更好的复用;
(4)spring对于主流的应用框架提供了集成支持。
1、使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑
2、可以提供众多服务,事务管理,WS等。
3、AOP的很好支持,方便面向切面编程。
4、对主流的框架提供了很好的集成支持,如JPA,Struts2,Hibernate等
5、Spring DI机制降低了业务对象替换的复杂性。
6、Spring属于低侵入,代码污染极低。
7、Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部
5-解释Spring支持的几种bean的作用域。
答:Spring容器中的bean可以分为5个范围:
(1)singleton: 默认,每个容器中只有一个bean的实例,单例的模式由BeanFactory.自身来维护。
(2) prototype: 为每一个bean请求提供一个实例。
(3)request:为每一个网络请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收器回收。
(4) session: 与request范围类似,确保每个session中有一个bean的实例,在session过期后,bean 会随之失效。
(5) global-session:全局作用域,global-session和Portlet应用相关。当你的应用部署在Portlet容器中工作时,它包含很多portlet。如果你想要声明让所有的portlet共用全局的存储变量的话,那么这全局变量需要存储在global-session中。全局作用域与Servlet中的session作用域效果相同。
6-SpringMVC常用的注解有哪些?
答:@RequestMapping:用于处理请求url映射的注解,可用于类或方法上。用于类上,则表示类中的所有响应请求的方法都是以该地址作为父路径。
@RequestBody:注解实现接收http请求的json数据,将json转换为java对象。
@ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户。
7-Mybaits的优点有哪些?
答:(1)基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在XML里,解除sql与程序代码的耦合,便于统一管理; 提供XML标签,支持编写动态SQL语句,并可重用。
(2)与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接;
(3)很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持。
(4)能够与Spring很好的集成;
(5)提供映射标签,支持对象与数据库的ORM字段关系映射:提供对象关系映射标签,支持对象关系组件维护。