Spring 代码粘贴后感
来源:互联网 发布:java 签名是什么 编辑:程序博客网 时间:2024/04/29 14:34
1.通过各种方式加载xml
2.将xml的bean信息转化为BeanDefinition对象,并将信息存放在某个地方
3.处理BeanDefinition对象
首先生成Bean实例
然后处理所有的依赖,其中依赖别的对象(ref)就直接加载了beanFactory.registerDependentBean
最后依赖的属性都注入到对象里面去
aop
如何获取一个代理的Bean的
1.获取一下通知器信息放成员变量里
2.通过工厂生成AopProxy然后getProxy()
3.动态代理通过InvocationHandler接口实现咯.
aop的实现, 方法调用时
4.在动态代理的实现invoke()中 获取拦截器链
4.1.拦截器链对于每个方法只在最初获取一次,然后缓存
4.2.从配置文件中获取通知器遍历,符合切点规则就通过注册器来获取拦截器4.3.在注册器里面,通过适配器,包装好对应的通知为拦截器,在拦截器的invoke()里面最终实现方法的调用
5.在拦截器链上搞事,搞出一个ReflectiveMethodInvocation对象,并调用此方法的proceed()
6.逐个处理拦截器,当前方法符合切点规则时,执行拦截器上的invoke()也就是4.2中的增强方法了
MVC
首先是监听器ContextLoaderListener,当服务启动的时候就会做一些事情.创建根上下文,然后refresh()
然后是DispatcherServlet这个Servlet
1.在Servlet的init()方法里面,初始化了MVC上下文,处理了很多很多默认的Bean,并设置根上下文然后refresh()
2.然后就初始化一些MVC特有的东西,基本上是一些Resolver,大部分是初始化到成员变量上去了,关注HandlerMapping
3.然后从前端过来一个Http请求,这个Servlet拦截了,在doService()里搞事
4.首先去获取这个请求对应的HandlerExecution,包装了Handler的对象
4.1遍历handlerMappings属性,调用每一个HandlerMapping对象的getHandler()
4.2这个方法的实现在AbstractHandlerMapping,
首先getHandlerInternal(),然后用获取的handler,getHandlerExecutionChain()
4.3getHandlerInternal()实现在AbstractHandlerMethodMapping
使用lookupHandlerMethod(),找到匹配度最大的HandlerMethod
4.4getHandlerExecutionChain(),使用找到的HandlerMethod构建HandlerExecution
5.然后测试这个返回的Handler是否符合规格
6.执行这个Handler,返回一个ModelAndView
7.根据ModalAndView获取对应View
8.使用View调用render(),继而调用子类实现的renderMergedOutputModel()去渲染
- Spring 代码粘贴后感
- Python:去掉粘贴代码后的行号
- csdn粘贴代码后出现编辑异常的解决
- 粘贴代码
- vim粘贴代码 如果有注释,那么粘贴后就惨不忍睹,类似于:
- Spring 源码粘贴2
- Spring 源码粘贴3
- Spring 源码粘贴4
- Spring 源码粘贴5
- Spring 源码粘贴7
- Spring 源码粘贴8
- Spring 源码粘贴10
- 对Worksheet_SelectionChange事件写入代码后影响Excel剪切、复制粘贴的修正
- VBA 中代码里的中文 日文 拷贝 粘贴后出现乱码
- 粘贴为HTML代码
- 粘贴别人代码--参考
- word代码粘贴
- 粘贴代码测试
- php 字符串转日期格式
- 全面理解Java内存模型
- 通过反射调用的类中使用Spring@Autowired自动装配的成员为空的解决办法
- UNIX命令行快速入门5
- 2个心态让你快速提高学习效能
- Spring 代码粘贴后感
- http协议基本知识
- java的post网络请求
- 3.服务器端接入文档
- 微信抢红包牛牛有没有控制尾数软件
- 乱码系列问题
- 特征工程框架及技术要点
- windows环境下的git服务器搭建——gitblit(2)
- 克隆机 移动虚拟机应该做的修改