Spring Bean的生命周期、Spring MVC的工作流程、IOC,AOP
1.Spring Bean的生命周期?
(1)构造方法实例化bean。
(2)构造方法设置对象属性。
(3)是否实现aware接口,三种接口(BeanNameAware,BeanFactoryAware,ApplicationContextAware),传递的是不同的实例注入给bean。
(4)初始化init,使用bean。
(5)结束时,销毁destroy方法。
2.Spring MVC的工作流程?
(1)发起请求到前端控制器disPatchServelet。
(2) disPatchServelet调用handlerMapping寻找对应的hander,handlerMapping返回给hander给前端控制器。
(3)disPatchServelet通过HandlerAdapter去调用controller到服务层,返回modelAndView给前端控制器。
(4)disPatchServelet再调用视图解析器解析modelAndView,返回一个view给前端控制器。
(5)disPatchServelet再渲染之后返回给用户。
3.最好能通过阅读源代码,说下IOC,AOP?
IOC: 体现了工厂模式,通过BeanFactory注入实例,将对象交给容器管理,在配置文件定义相应的bean,以及设置相关的属性,让spring容器来生成实例对象以
及管理对象。
AOP: 体现了代理模式,面向切面编程,在不改变源码的情况下,通过预编译方式或者动态代理的方式,invoke反射机制,给程序统一添加功能,如日志。
4.最好能结合反射,说下IOC等的实现原理?
Spring IOC 容器的设计中,主要由两个容器系列:
(1)BeanFactory接口的实现类是一个简单容器系列,该系列的容器只实现了容器最基本的功能;
(2)ApplicationContext接口的实现类是一个高级容器系列,该系列的容器在简单容器的基础上增加了很多面向框架的特性;
举例:
(1)我们定义一个Bean类,这个由BeanFactory工厂来生成。这个类用来存放一个Bean拥有的属性,这个Bean对象包含id,type,和properties三个属性。
(2)然后Spring 就开始加载我们的配置文件了,将我们配置的信息保存在一个HashMap中,HashMap的key就是Bean 的 Id ,HasMap 的value是这个Bean,只有这样 我们才能通过context.getBean("animal")这个方法获得Animal这个类。
(3)现在已经有spring工厂,需要通过反射机制把对应的bean注入进去。通过反射调用类中set方法将事先保存在HashMap中的类属性注入到类中。
(4)最后它将这个类的实例返回给我们,我们就可以用了。
最新文章
- tyvj1192 迎春舞会之集体舞
- 常见linux命令释义(第六天)——shell环境变量
- ACDC
- B - Kefa and Company
- 使用Visual Studio 2013对windows应用商店应用进行编码的UI测试
- Perl,Python,Ruby,Javascript 四种脚本语言比较
- PHPMailer中文说明
- javascript 广告移动特效
- 使用HttpURLConnection实现多线程下载
- [HNOI 2001]产品加工
- C# 指定父層級目錄
- IIS命令行静默安装脚本-python
- C#学习-多态
- .net 超长URL请求返回404错误-解决方法
- 洛谷 P2802 回家
- Dockerfile之nginx(六)
- Python 多进程编程之 进程间的通信(Queue)
- 时区提示:Local time zone must be set--see zic manual page 2018的解决办法
- Individual Project 1 总结
- require 与 include 的区别
热门文章
- netty权威指南学习笔记二——netty入门应用
- 4. Linux 集群安装
- Centos7.4 kafka集群安装与kafka-eagle1.3.9的安装
- 吴裕雄--天生自然C++语言学习笔记:C++ 运算符
- CodeForces - 782B The Meeting Place Cannot Be Changed(精度二分)
- tensorflow--建立一个简单的小网络
- bzoj 3732Network
- 04-String——课后作业1:字串加密
- VS 2017 没有工具栏中没有Report Viewer的解决方案
- stm32cube 安装 patch