码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA框架底层源码剖析系列Spring,Mybatis,Springboot,Netty源码深度解析

时间:2018-11-22 22:36:53      阅读:485      评论:0      收藏:0      [点我收藏+]

标签:软件开发   扩展   易到   ice   适合   text   enc   数据   cto   

《Spring源码深度解析》从核心实现和企业应用两个方面,由浅入深、由易到难地对Spring源码展开了系统的讲解,包括Spring的设计理念和整体架构、容器的基本实现、默认标签的解析、自定义标签的解析、bean的加载、容器的功能扩展、AOP、数据库连接JDBC、整合MyBatis、事务、SpringMVC、远程服务、Spring消息服务等内容。 《Spring源码深度解析》不仅介绍了使用Spring框架开发项目必须掌握的核心概念,还指导读者如何使用Spring框架编写企业级应用,并针对在编写代码的过程中如何优化代码、如何使得代码高效给出切实可行的建议,从而帮助读者全面提升实战能力。 《Spring源码深度解析》语言简洁,示例丰富,可帮助读者迅速掌握使用Spring进行开发所需的各种技能。《Spring源码深度解析》适合于已具有一定Java编程基础的读者,以及在Java平台下进行各类软件开发的开发人员、测试人员等。

3.第三个方法createSpringFactoriesInstances是创建了上述类型的实例,

4.第四个方法AnnotationAwareOrderComparator.sort(instances);会根据AnnotationAwareOrderComparator的排序规则进行排序执行,将instances进行排序。

最后在外面将这些排序好的initializers设置到了SpringApplication的initializers的属性之中。

在springApplication的initialize方法的后面一个方法setListeners((Collection) getSpringFactoriesInstances(ApplicationListener.class));中是设置org.springframework.context.ApplicationListener类的实例到类SpringApplication的listeners属性当中。

springApplication的initialize方法中的最后一个方法this.mainApplicationClass = deduceMainApplicationClass();是获取启动类,其方法如下:

大概解释一下每个类(源码中的注释已经解释很清楚了)
(1)AbstractConfig:配置解析的工具方法、公共方法,提供几个主要的方法appendAnnotation,appendProperties,appendParameters,appendAttributes。
(2)AbstractMethodConfig:封装了一些方法级别的相关属性
(3)AbstractInterfaceConfig:封装了接口契约需要的属性
(4)AbstractReferenceConfig:主要是引用实例的配置

而ReferenceConfig中,会获取消费者全局配置,然后进行一个初始化。

2,ServiceConfig(为提供服务端的配置相关类,包含一些运行时数据)
继承关系如下:

JAVA框架底层源码剖析系列Spring,Mybatis,Springboot,Netty源码深度解析

标签:软件开发   扩展   易到   ice   适合   text   enc   数据   cto   

原文地址:https://www.cnblogs.com/java168/p/10004122.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!