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!