『互联网架构』软件架构-spring源码之spring结构概述
spring从07年接触到目前2018年也差不多10年了,一个java的框架为什么能火这么多年。很多人对spring的使用轻车熟路,但是从未解读过spring的源码,老铁跟我一起看看源码,了解下内部的构造,只有源码读过的人才能获得上乘武功,软件开发不只是搬砖的老铁。内功熟悉原理,外功是灵活使用。内功好比电力,外功好比电机。内功的电力越强,电机的马力越大才能发挥巨大作用,相反如果电力弱,马力在强也是不行的。spring从单一的jar包,发展到现在十多个jar包,spring mvc 到spring boot 到spring cloud,从需要配置到现在0配置,封装的越来越厉害,导致的结果,如果不了解内核在强的马力,遇到问题可能无从下手。一起熟读spring源码尤为重要。
2002年开发者Juergen Hoeller和Yann Caroff说服Rod Johnson创建一个基于基础结构代码的开源项目。Rod,Juergen和Yann于2003年2月左右开始合作该项目。Yan为新框架创造了“Spring”的名字。据Rod介绍,Spring是传统J2EE的“冬天”之后的新开始!
自2004年1.0版本发布以来,Spring框架迅速发展。Spring 2.0于2006年10月发布,到那时,Spring的下载量超过了100万。Spring 2.0具有可扩展的XML配置功能,用于简化XML配置,支持Java 5,额外的IoC容器扩展,支持动态语言(如groovy,aop增强功能和新的bean范围)。
spring-core和 spring-beans 模块是[Spring框架的基础],包括控制反转和依赖注入等功能。BeanFactory是工厂模式的微妙实现,它移除了编码式单例的需要,并且可以把配置和依赖从实际编码逻辑中解耦。
[Context]( spring-context )模块是在[Core和Bean]模块的基础上建立起来的,它以一种类似于JNDI注册的方式访问对象。Context模块继承自Bean模块,并且添加了国际化(比如,使用资源束)、事件传播、资源加载和透明地创建上下文(比如,通过Servelet容器)等功能。Context模块也支持Java EE的功能,比如EJB、JMX和远程调用等。 ApplicationContext 接口是Context模块的焦点。 spring-context-support 提供了对第三方库集成到Spring上下文的支持,比如缓存(EhCache, Guava, JCache)、邮件(JavaMail)、调度(CommonJ, Quartz)、模板引擎(FreeMarker, JasperReports, Velocity)等。
Web
spring-test模块通过JUnit和TestNG组件支持[单元测试]和[集成测试]。它提供了一致性地[加载]和[缓存]Spring上下文,也提供了用于单独测试代码的[模拟对象](mock object)。
最末尾添加两句话:
192.30.253.112 http://github.com git clone https://github.com/spring-projects/spring-framework.git #切换到对应分支 git checkout -b v4.3.8 v4.3.8.RELEASE
2.通过另一个类new出来然后传递到指定需要的类里面
PS:直击源码的学习,springboot和springcloud慢慢主流,很多大型框架的思路都是借鉴了spring,相信读懂了常用的spring源码后,以后的路会越走越宽广。会在后面的博文里面多加入更多自己的心得体会,更加详细的一起学习spring源码。
在此我向大家推荐一个java互联网架构学习交流群。交流学习Q群号:815220368 加群获得以上学习视频,群里面还会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!原文链接地址:『互联网架构』软件架构-spring源码之...
- 概述 Spring框架是在Java开发中广泛使用的框架之一,是SSH中还能持久热门的长青树。在Struts 2被安...