1、谈谈对spring的理解
1.是一个开源的轻量级的Java框架,可以自由选择spring框架的全部或一部分
2.是一个容器框架
3.提供了对持久层的支持
4.提供了对Web MVC层的支持
5.IOC\DI(控制反转\依赖注入)
IOC(控制反转):IOC是一个概念,就是说不用创建对象,只是去描述这个对象是怎么被创建出来,不在代码里直接组装你的组件和服务,但是需要在配置文件中描述需要哪些组件,之后容器负责把他们组装起来
DI:(依赖注入):从应用程序的角度来说,就是应用程序依赖Spring管理的Bean和Bean之间的关系,Spring中有很多Bean的实例,他会将符合依赖关系的对象通过注入的方式进行关联,建立Bean与Bean之间的联系
6、AOP(面向切面编程)
AOP:AOP就是把可以重用的功能提取出来,然后在将这些功能在合适的时候放入到应用程序中,AOP没有帮我们解决新的问题,他是提供了一种方法,用更少的工作量来解决一些现有的问题,是系统变得更加健壮,可维护性更好
2、什么是Spring的事务管理
事务就是对一系列的数据库操作进行统一的提交和回滚,如果插入成功,就全部插入成功,如果有一条数据发生问题,就全部回滚,避免脏数据的产生
Spring具有两种事务,一种是声明式事务,另一种是编程式事务,Spring大部分的用户会采用声明式事务,因为这种事务和应用程序的关联比较少
声明式事务:在配置文件中对事务进行声明,通过Spring proxy进行代理,不用写额外的代码,只需要在Spring配置文件中声明
编程式事务:使用硬编码的形式做事务处理,事务中的逻辑可以自己控制
Spring中也有自己的事务管理机制,一般是使用TransactionMananger进行管理,可以通过Spring的注入来完成此功能
3、Spring和SpringMVC的区别
spring是一个开源的轻量级的具有IOC(控制反转)和AOP(面向切面编程)的容器框架,SpringMVC是一个MVC框架,是基于Spring现有功能之上添加的框架,想用SpringMVC必须先依赖于Spring
4、什么是SpringMVC
SpringMVC是Spring配备构建Web应用的全功能MVC框架,SpringMVC是一个基于MVC架构的Web框架,SpringMVC是Spring框架的模块,SpringMVC和Spring无需通过中间层进行整合
5、SpingMVC的工作流程
1.发送请求到前端控制器(dispatcherservlet)
2.前端控制器(dispatcherservlet)接收到请求后,根据URL调用HandlerMapping获得该handler配置的所有相关的对象,最后以HandlerExecutionChain对象的形式返回
3.dispatchersevlet根据获得的handler,选择一个合适的handlerAdapter
4.提取request中的额数据模型,填充handler入参,开始执行handler(也就是cotroller)
5.handler执行完成后,向dispatcherservlet返回一个modelandview对象
6.dispatcherservlet接收到modelandview对象,将modelandview对象传给viewresolve
7.viewresolver解析后返回具体的view
8.dispatcherservlet将渲染视图,返回给客户端
6、Spring的常用注解
1.controller,对应表现层的Bean
2.sevice,对应业务层的Bean
3.Repository,对应数据访问层的Bean
4.Autowired,让一个对象可以被自动注入
7、SpringMVC的常用注解
1. @Controller,使用它标记的类就是一个SpringMVC Controller 对象
2. @RequestMapping,处理请求映射地址
3. @PathVariable,用于对应restful风格url中的参数
4. @RequestParam,将请求的参数绑定到方法中的参数上
5. @ResponseBody,将返回类型直接输入到http response body中
6. @RequestBody,方法参数直接被绑定到http request body中