1.什么是spring框架?spring框架有哪些主要模块?
2.使用spring框架能带来那些好处?
3.什么是控制反转(IOC),什么是依赖注入?
4.BeanFactory和ApplicationContext有什么区别?
两者都是通过xml配置文件加载bean,ApplicationContext和BeanFacotry相比,提供了更多的扩展功能,但其主要区别在于后者是延迟加载,如果Bean的某一个属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常;而ApplicationContext则在初始化自身是检验,这样有利于检查所依赖属性是否注入;所以通常情况下我们选择使用ApplicationContext.
5.Spring Bean的生命周期。
spring负责创建bean放在容器里,并没有做销毁工作
6.Spring Bean的各种作用域之间有什么区别?
7.Spring框架中单例Beans是线程安全的吗?
spring是容器,用来装beans的,线程是否安全由业务决定
spring的工作原理
第一步:加载配置阶段
1.web.xml
2.DispatcherServlet :application.xml文件所在的路径,一般为:classpath:application.xml ,通过什么url才能请求到(例如:/*)
第二步:初始化阶段
1.init() :通过init()方法能读取到web.xml中的配置信息
2.读取解析 :Spring能知道我要对那些bean进行操作
3.初始化IOC容器:把以上解析到的bean放到已给的地方存着,以Map的形式:key:id,value:instance
4.进行依赖注入:实现对属性的动态复制,注解@Autowrited
5.HandlerMapping :主要是为了将url和method一一对应
第三部:等待请求响应阶段
1.doGet/doPost :能够获得浏览器传递过来的参数,以及url等信息
2.通过HandlerMapping匹配method :利用反射机制去调用
3.通过Response将结果输出