Spring__容器启动源码
来源:互联网 发布:淘宝卖的苍蝇水叫什么 编辑:程序博客网 时间:2024/06/08 12:54
前言:
Spring的基本原理其实就是通过反射解析类和类的各种信息,然后封装成bean定义信息类,constructor信息类,method信息类,property信息类,最后放到一个map里面,这个map就是容器(container), 当写好配置文件后,spring会通过解析配置文件找到制定的package,通过@service等注解利用反射进行解析,解析后放到map中,并未map中的该类赋与一个指定的ID,当需要使用到一个bean的时候,spring会通过容器中需要这个类的定义,并通过构造器new出来(所以构造器要么无参,要么对应参数)对象,这个对象其实是个代理对象,spring内部可以使用jdk动态代理和cglib动态代理(可以根据需要制定,比如在使用shiro的时候),再需要标有@resource或者@autowired的属性,通过setter方法注入对象(DI),如果没有找到该类则跑出异常.
spring除了创建对象之外,还有管理对象,当bean的scope属性是singleton的时候,则后续会继续使用这个bean而不会再次new重新创建,spring会将这个bean方法servletcontext域中,获取的时候每次都是从map的key指定对象。然后从container中找到即可;如果bean的scope属性是session,那么就是将每次new出来的对象放入session域中,使用的时候各自使用各自的bean.不共用同一个对象。
容器启动
1.super()依次调用了AbstractRefreshableConfigApplicationContext,AbstractXmlApplicationContext,AbstractRefreshableConfigApplicationContext,AbstractRefreshableApplicationContext,AbstractApplicationContext这几个父接口(都是接口,每个都有不同的使用场景,这样设计便于管理)
然后内部通过new出来一个spring的资源加载器;
2.setConfigLocations(configLocations)参数是资源文件路路径字符,这一个方法的主要目的就是定位资源文件
3.if(refresh){refresh();}则是解析的过程,这个方法是如果有beanfactory那么就关了它再创建一个,保证beanfactory是独一无二的存在,当这些都执行完成之后,容器启动成功,.如果有错误则启动失败.
- Spring__容器启动源码
- Spring IOC 源码分析:容器的启动
- Spring源码分析之ioc容器第二天之oC容器在Web容器中的启动
- Spring IoC容器在Web环境中的启动源码阅读
- 四 spring 源码分析--- 容器启动 时序图
- Spring源码分析2 — 容器启动流程
- Spring源码分析1 — 容器启动流程
- SpringIOC容器在Web项目中启动源码分析
- 【Spring源码解析】之IOC容器在Web容器中的启动
- 【Spring源码--IOC容器的实现】(一)Web容器的启动
- web容器启动spring容器
- struts1.2源码分析之容器启动所做的工作
- spring mvc 源码研究简单笔记--web容器启动加载WebApplicationContext和初始化DispatcherServlet
- 【Web容器】Tomcat源码分析(4)-启动与停止服务
- dubbo的内核源码UML(容器启动以及Spring的shceme扩展)
- Spring boot源码分析-AnnotationConfigApplicationContext非web环境下的启动容器(2)
- Spring boot源码分析-AnnotationConfigEmbeddedWebApplicationContext默认web环境下的启动容器(3)
- 深入理解 Tomcat(六)源码剖析Tomcat 启动过程----生命周期和容器组件
- 带你从源码看Android Handler 异步消息处理机制完全解析
- 告诉你1年读100本书的方法
- 移动端meta标签的使用
- 用 AdvStringGrid addbutton 中添加图片(BMP/JPG)
- lua UTF8字符串操作,截取,索引
- Spring__容器启动源码
- 导出excel
- Log4J 配置详解
- impala-shell 命令行选项
- 第十五周 判断字符串是否为回文
- hadoop集群搭建中的各种问题
- 怎么让MathType矩阵中的小数以小数点对齐
- MFC中无标题栏窗口的移动
- 如何在Windows Server 2008 上添加RD (远程桌面)会话主机配置的远程桌面授权服务器