Spring部分面试题及答案----java

1.请简单的说一下Spring框架?为什么要用Spring框架?

Spring是一个轻量级的开源的javaEE框架,可以解决应用开发的复杂性!Spring的两个核心:IOC(控制反转,把创建对象过程交给Spring进行管理)和AOP(面向切面,不修改源代码进行功能增强   如:埋点);

使用Spring 框架的好处:

  (1)方便解耦,简化开发

  (2)Aop编程支持

  (3)方便程序测试

  (4)方便和其它框架进行整合

  (5)方便进行事务操作

  (6)降低API开发难度

2.Spring默认使用单例还是多例,是线程安全的还是线程不安全的?

Spring默认使用单列,线程不安全,可以在spring配置文件的bean标签里面设置属性(scope)用于设置单实例或者多实例(.singleton :单实例    prototype: 多实例)

3.Spring基于xml注入bean的几种方式

(1)Set方法注入;

(2)构造器注入:①通过index设置参数的位置;②通过type设置参数类型;

(3)静态工厂注入;

(4)实例工厂;

4.Spring的有几种事务实现方式?

编码式事务管理和声明式事务管理!一般我们用声明式事务管理

声明式事务管理又有两种方式:基于XML配置文件的方式;另一个是在业务方法上进行@Transactional注解,将事务规则应用到业务逻辑中。

事务的4个特性:

  (1)原子性:一个事务中所有对数据库的操作是一个不可分割的操作序列,要么全做,要么全部做。

  (2)一致性:数据不会因为事务的执行而遭到破坏。

  (3)隔离性:一个事务的执行,不受其他事务(进程)的干扰。既并发执行的个事务之间互不干扰。

  (4)持久性:一个事务一旦提交,它对数据库的改变将是永久的。

5.Spring提供IOS容器两种实现方式:(两种接口)

BeanFactory:IOC容器的基本实现,是Spring内部的使用接口,不提供开发人员进行使用;
    ***加载配置文件的时候不会去创建对象,在获取对象(使用)才会去创建对象;
ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员使用;
    ***加载配置文件的时候就会把配置文件对象进行创建
ApplicationContext接口的两个实现类:

(1)FileSystemXmlApplicationContext :此容器从一个XML文件中加载beans的定义,XML Bean 配置文件的全路径名必须提供给它的构造函数。

(2)ClassPathXmlApplicationContext:此容器也从一个XML文件中加载beans的定义,这里,你需要正确设置classpath因为这个容器将在classpath里找bean配置。

6.SpringMVC的工作流程(可以背下来)

(1)用户发送请求给前端控制器(DispatcherServlet),前端控制器(DispatcherServlet)收到请求后调用处理器映射器(HandlerMapping);

(2)处理器映射器找到具体的处理器处理完成后,并返回给前端控制器(DispatcherServlet),前端控制器调用处理器适配器(HandlerAdapter),返回一个虚拟视图(ModelAndView)给前端控制器(DispatcherServlet);

(3)前端控制器(DispatcherServlet)将虚拟视图(ModelAndView)传给视图解析器(ViewReslover),通过解析以后返回真正的视图给用户

7.SpringMVC为什么会被称为三层架构体系?

 MVC即Model-View-Controller,将应用按照Model(模型)、View(视图)、Controller(控制)这样的方式分离。

8.SpringMVC的优点

(1)天生与Spring框架集成(如IoC容器、AOP等)

(2)提供强大的约定大于配置的契约式编程支持

(3)进行更简洁的Web层的开发

(4)支持Restful风格

9.SpringMVC 和 Struts2的区别

 SpringMVC是方法级别上的拦截,Struts2是类级别上的拦截

 Springmvc的入口是一个servlet即前端控制器(DispatchServlet),而struts2入口是一个filter过虑器

  

Best Regards!
Make a little progress every day!
原文地址:https://www.cnblogs.com/chuan-yoyo/p/13438458.html