1.spring的核心容器
spring-core提供了框架的基本,保存ioc与di;
spring-beans提供了beanFactory的实现;
IOC容器管理对象的生命周期;
2.spring提供了哪两个容器
springBeanFactory容器:
定义了BeanFactoryAware、InitializatingBean
applicationContext容器:
包含了beanFactory容器所有的功能,beanFactory容器适用轻量级的
3.bean的定义
bean是一个被实例化、组装并通过IOC容器进行管理的对象,这些对象是由配置文件提供的元数据创建;
4.bean的作用域、有状态bean、无状态bean
作用域:一般使用singleton、prototype,(session、request、gloabsession使用比较少)
有状态bean:在bean的生命周期内,bean保存了调用用户的信息,比如通过私有变量保存调用用户信息,就是有状态的bean;
无状态的bean:在整个生命周期内,不会保存某个用户的信息,没有特定的用户,所有就是无状态的bean;
有状态的bean使用prototype,无状态的bean使用singleton
5.bean的生命周期
1.通过工厂方法实例化一个bean
2.为bean的属性设置值和引用其他bean
3.调用bean的初始化方法
4.bean可以使用了
5.关闭容器,调用bean的destory方法
6.如果有bean的后置处理器,那么init方法前后分别还要加beforeInit和afterInit方法
6.说下你对Spring的了解
Spring是java开源的一个基础性框架,为我们的开发提供了一些重要的便利的基础性的服务,比如ioc、di、aop、事务等,通过Spring可以大大简化我们的开发,解耦对象之间的关系,是最重要的基础性框架之一;
7.什么是IOC
IOC就是控制反转;一般我们实例化一个对象,就是程序本身去new这个对象,现在我们通过IOC,将new对象的控制权交给了IOC容器,IOC容器会帮我们管理对象的整个生命周期;这样的好处是将对象统一由IOC容器管理,降低了对象之间的耦合度,提高了代码的重用性;
8.什么是DI
DI就是依赖注入;程序依赖IOC容器注入外部资源;
9.事物管理
1.声明式事务管理(基本都用这个)
2.编程式事务管理
10.Spring AOP
AOP是面向切面编程;将系统分为核心关注点和横切关注点;业务的主要流程是核心关注点,与之关系不大的是横切关注点;横切关注点的特点是它经常发生在核心关注点的多处,比如日志、权限、事务等;
横切关注点:对哪些方法进行拦截,拦截后如何处理,这些就称为横切关注点;
切面:就是横切关注点的抽象;
连接点:被拦截的点,Spring只支持方法级别的连接点;
切入点:定义通知用在哪些连接点;
通知:拦截到连接点后要执行的代码;
11.springMVC的工作机制
1.Spring MVC将所有的请求都交给dispatcherServlet
2.dispatcherServlet会找到处理请求的controller
3.dispatcherServlet将请求提交到目标controller
4.controller进行处理后,会返回一个ModelAndeView
5.dispatcher查询视图解析器,找到模型对象指定的对象
6.视图对象负责渲染返回给客户端
12.项目中如何体现spring的AOP
项目中使用AOP最多的地方就是:声明式事务
1.定义一个事务管理器
2.配置事务特性(相当于声明通知。通常在类的方法上定义事务)
3.配置哪些类的哪些方法上需要配置事务(相当于切入点)
13.Spring在项目中如何充当粘合剂
1.在项目中利用IOC,明确定义组件的接口,开发者可以独立开发各个组件,然后可以根据组件中的依赖关系进行组装,很好的把action和dao的实现结合起来
2.spring的事物管理把orm框架对数据库的操作进行了事务配置