1.Spring的IOC和AOP机制?
我们在使用spring框架其实就是为了实现IOC,依赖注入,和AOP,面向切面编程,主要有两种设计模式工厂模式和代理模式,IOC就是典型的工厂模式,通过sessionfactory去注入实例,AOP就是典型的代理模式,代理模式就是常用的java设计模式,他的特征是代理类和委托类有同样接口,
2.Spring核心是什么
IOC(控制反转)、AOP (面向切面编程)、容器
3.介绍一下IOC
IOC控制反转,也叫依赖注入,利用了工厂模式将对象叫给容器来管理,你只要在spring配置文件中配置相对应得bean,以及设置相关得属性,让spring容器来生成类的实例对象以及管理对象;在spring容器启动的时候,spring会把你在配置文件配置的bean都初始化好,调用的时候,spring就见已经初始化好的bean分配给你调用这些bean的类,分配的方法就是调用setter方法来注入。
4.介绍一下AOP
AOP面向切面编程,主要分为两大类第一采用动态代理技术,利用消息截取的方式,对该消息进行装饰,以取代原有的对象行为的执行;二是采用静态织入的方式,引用特定的语法来创建。
5.Spring中Autowired和Resource关键字有什么区别
@Resource和@Autowired都是做bean的注入时使用,Resource是javax.annotation.resource,需要导入,而spring支持该注解的注入
6介绍一下spring
spring是一个轻量级的IOC和AOP容器框架,是为了Java应用程序提供基础性服务的一套框架,常见的配置方式有三种基于XML配置,基于注解配置,基于Java的配置
8.spring MVC流程
1)用户发送请求☞前端服务器DispatcherServlet
2)DispatcherServlet收到请求后调用HandlerMapping处理器
3)处理器映射找到具体的处理器,生成处理器对象及处理器拦截器并返回给DispatcherServlet
4)DispatcherServlet调用HandlerAdapter处理器适配器
5)HandlerAdapter经过适配器掉用具体的Controller处理器
6)Controller执行完反返回ModeAndView
7)HandlerAdapter将Controller执行结果ModelAndView返回给 DispatcherServlet
8)DispatcherServlet将ModeAndView传给ViewReslover视图解析器
9)ViewResalover解析后返回具体的View
10)DisPatcherServlet根据View进行渲染视图
11)DispatcherServlet响应用户
9.String组件说明
1)DispatcherServlet:前端控制器,整个流程的中心,控制其他组件的执行,降低组件之间的耦合性,提高组件的扩展性
2)HandlerMapping:通过扩展控制器映射器实现不同的映射方式
3)HandlerAdapter:通过扩展处理器适配器,支持更多类型的处理器
4)ViewREsolver:通过扩展视图解析器,支持更多的视图解析
10.MVC设计模式
1)Model模型:
2)View视图
3)Controller控制器:
11.SPringMVC怎么设置重定向和转发
转发:forward 比如Forword:user.do?name=method4
重定向:再返回值前面加一个 redirect 比如redirect:http://www.baoidu.com
12.spring框架中几种设计模式
1)工厂模式:BeanFactroy就是简单的工厂模式体系,用来创建对象的实例
2)单例模:Bean默认就是单例模式
3)代理模式:Spring的AOP功能就用到了JDK的动态代理和CGLIB字节码生成技术
4)模板方法:用来解决代码重复的问题
5)观察者模式:定义一个对象一种一对多的依赖关系
13.spring支持的bean作用域有哪些?
1)singleton:使用该属性定义Bean时,IOC容器只创建一个Bean实例,IOC容器返回的是同一个Bean实例。
2)prototype:使用该属性定义Bean时,IOC容器可以创建多个Bean实例,每次返回的都是一个新实例
3)request:该属性只对HTTP请求起到作用,使用该属性定义bean时3,每次HTTP请求都会创建一个新的Bean,适用于WebApplicationContext环境
4)session:该属性只用于HTTP session,同一个session共享一个bean实例,不同session使用不同的实例
5)global—session:该属性只用于HTTP session,同session作用域不同的是,所有的session共享一个bean实例