java进阶面试题三

一、springMVC的工作原理

   

1、用户发送请求给中央控制器

2、中央控制器指派处理器映射

3、根据HandleMaooing查找处理器

4、获取到处理器地址

5、中央控制器返回处理器地址

6、中央控制器指派处理器适配器(带着处理器映射器返回的地址)

7、处理器适配器根据命令对C进行处理

8、C向M发出请求

9、M查找数据库

10、数据库做出响应并返回

11、M返回给C

12、C做出相应返回给处理器适配器

13、处理器适配器返回给中央处理器

14、中央控制器提交到视图解析器进行解析

15、解析返回

16、到前台jsp

17、结果返回给中央控制器

18、中央控制器返回给用户

二、spring的工作原理

spring核心AOP面向切面编程,可以为某一类对象,进行监督和控制,从而达到对一个模块扩充的功能。

spring目的:对象与对象之间的关系没有通过代码来关联都是通过配置类说明管理的

spring是一个容器,在容器里面的对象才会后spring所提供的功能。

三、spring如何控制管理事务

原理:spring的核心是ioc和aop,ioc是将对象创建交给spring容器来完成,aop是面向切面编程,内部实现是动态代理,动态代理内部是反射。


spring声明式管理事务:在底层建立aop的基础上,本质是对方法前后进行拦截,然后在目标方法开始之前创建或加入一个事务,在执行完目标方法之后根据提交回滚事务。

spring编程式管理事务:在spring出现以前基于pojo的应用来说是唯一选择。Hibernate框架,我们需要在代码中显式调用beginTransaction()、commit()、rollback()事务管理相关方法。

事务隔离性:事务的隔离性是指多个事务并发执行的时候相互之间不受干扰,是事务acid中i,根据隔离程度分类。

事务的传播性:事务嵌套的时候使用。

四、bean的作用域

1、singleton:单例设计模式,在整个spring  ioc容器中,使用singlenton定义Bean只有一个实例。

2、prototype:原型模式,每次通过容器getBean方法获取prototype定义Bean时,都将产生一个新的实例。

3、request:对于每次HTTP请求,使用request定义的Bean都将产生一个新实例,每次请求都会产生不同的实例,只有在web应用中使用spring时,该域有用。

4、session:对于每次HTTP Session,使用session定义的Bean都产生一个新实例,在web中spring有用。

5、globalsession:每个全局的HTTP Session,使用定义的Bean都产生一个新实例,仅使用portlet context的时候有效。在web应用spring是该域有用。

五、设计模式

1、工厂模式:专门负责将大量有共同接口的类实例化。

2、简单工厂模式(静态工厂方法模式):由一个工厂对象决定创建决定出哪一中产品类的实例。

3、工厂方法模式(多态性工厂模式):定义一个创建产品对象的工厂接口,将实际创建工作给子类做。

4、单例模式:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,

特点:单例只能有一个实例;单例类必须自己创建自己的唯一的实例;单例类必须给所有其他对象提供这一实例。

5、多例模式:可以有多个实例,并且多例类必须自己创建、自己管理自己的实例,并向外界土工自己的实例。

6、代理模式:给某个对象提供代理对象,并由代理对象控制对原对象的引用。