企业做网站能赚钱么,网站建设招标参数,东莞网站优化方法有哪些,怎么做网站挣钱文章目录 1、 Spring的发展历史2、为什么Spring能霸屏#xff1f;2.1、容器的设计2.2、通过四个策略2.3、三种方式 3、学习编程设计的典范 1、 Spring的发展历史
正当SUN公司的EJB在全球开始热炒时#xff0c;正当程序员纷纷转型EJB开发时#xff0c;正当程序员为跑通EJB程… 文章目录 1、 Spring的发展历史2、为什么Spring能霸屏2.1、容器的设计2.2、通过四个策略2.3、三种方式 3、学习编程设计的典范 1、 Spring的发展历史
正当SUN公司的EJB在全球开始热炒时正当程序员纷纷转型EJB开发时正当程序员为跑通EJB程序而欢呼雀跃时。 突然一个名不见经传的悉尼大学的音乐学博士Rod Johnson罗德·约翰逊 写了一本书。 《Expert One-On-One J2EE Development without EJB》而书中阐述的一种新的理念并且形成了基础的代码和案例。 瞬间在软件开发行业引起轰动正当大家都纷纷要走上EJB的康庄大道时而且有SUN公司背书却在这个时候有人敢于挑战EJB而且竟然还把它按在地上摩擦而且竟然还真把EJB打败了EJB本来要躺着就等天上掉钱呢一夜醒来破产了。
这东西怎么这么厉害它是谁这就是今天我们要讲的Spring框架。
Spring是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构分层架构允许使用者选择使用哪一个组件同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
2002年10月Rod Johnson 撰写的这本书介绍了当时 Java 企业应用程序开发的情况并指出了 Java EE 和 EJB 组件框架中的存在的一些主要缺陷。在这本书中他提出了一个基于普通 Java 类和依赖注入的更简单的解决方案。
在书中他展示了如何在不使用 EJB 的情况下构建高质量可扩展的在线座位预留系统。为了构建应用程序他编写了超过 30,000 行的基础结构代码。包含许多可重用的 Java 接口和类如 ApplicationContext和BeanFactory。由于java接口是依赖注入的基本构建块因此他将这些类的根包命名为com.interface21。在本书发布后不久开发者 Juergen Hoeller 和 Yann Caroff 说服 Rod Johnson 创建一个基于基础结构代码的开源项目。
2003年2月左右Rod罗德、Juergen尤尔根 和 Yann雅恩 开始合作开发该项目 。Yann 为新框架创造了“Spring”的名字。这样Spring项目就诞生了。
2003年8月Spring1.0-m1
2004年3月Spring1.0它提供了IoC容器和AOP框架两个核心功能。
2004年8月Rod JohnsonJuergen HoellerKeith Donald 和 Colin Sampaleanu 共同创立了一家专注于 Spring 咨询培训和支持的公司 interface21。
2006年10月Spring 2.0版本是一个里程碑式的版本它引入了很多新的功能如注解驱动的开发模式、Spring MVC框架、JDBC模板等。
2007年11月在 Rod 领导下Interface21公司被更名为 SpringSource。
2007年11月Spring 2.5
2008年4月GitHub成立方便了Spring代码迁移。
2009年8月SpringSource 以 4.2 亿美元被 VMWare 收购。
2009年12月Spring 3.0引入了Java 5的特性支持、REST风格的Web服务支持等。
2012年7月Rod Johnson 离开了团队。
2013年4月VMware 和 EMC 通过 GE 投资创建了一家名为 Pivotal 的合资企业。所有的 Spring 应用项目都转移到了 Pivotal。
2012年10月Mike Youngstrom 在 Spring jira 中创建了一个功能请求要求在 Spring 框架中支持无容器 Web 应用程序体系结构。这一要求促使了2013年初Pivotal开始了Spring Boot 项目的研发。
2014年4月Spring Boot 1.0.0 发布。Spring Boot非常简单这样以来java开发人员能够快速地采用它。Spring Boot可以说是在 Java 中开发基于 REST 的微服务 Web 应用程序的最快方法之一。
2015年11月Spring boot 2.0.0 发布。
2017年发布的Spring 5.0版本引入了对响应式编程的支持并且对Spring框架的核心组件进行了重构和升级以提高框架的性能和可扩展性。 2、为什么Spring能霸屏
2.1、容器的设计
Spring容器的设计非常牛历史上很多框架很快登顶又很快谢幕。如开启架构的先河的EJB如表示层的Struts1、Struts2框架如持久层的Hibernate哪个当年都是经典中的经典鼎盛时都雄霸一方但后期都逐渐消亡。回头看看是什么原因呢就是它们没有根它们只是一个产品它们都是java的依附品当有新的更好的产品出现它们只能被替代最终只能黯然落幕。
而Spring为何能常青呢 就是它有根。它的根是什么就是JavaObject对象写java程序我们都知道Java万物皆Object。那如果你的Object被绑架是不是就可以挟天子以令诸侯。对Spring就这么干的它发明了IoC控制反转而利于IoC控制反转就形成了对Object控制权。以前我们开发代码要使用java某个类特别简单自己创建即可。如Person p new Person。而现在不行了我们必须从容器中获取如Person p getBean(“person”); 这样一旦你使用了Spring框架再想刷开它单干就不可能了。
2.2、通过四个策略
Spring做的事情远不这么简单。它进一步的蚕食
基于 POJO 的轻量级和最小侵入性编程通过依赖注入 DI 和面向接口松耦合基于切面 AOP 进行声明式编程通过切面和模板设计模式的减少样板式代码
2.3、三种方式
实现上面4个策略的主要是通过三种方式
面向 Bean(BOP)形成Bean的容器需要对象从容器中获取。依赖注入DI自动注入开发者特别方便。面向切面AOP实现无侵入的代码加强。
概念谁不会提呢每个技术都有但Spring做的最优最完美没有瑕疵让你不得不爱上它。 EJB不能完全实现业务查询where不能动态致命缺点。 Hibernate面向对象构建复杂性能降低并发问题多采用ONGL晦涩难懂没法维护致命BUG满天飞。 Struts1、Struts2 XML配置巨大手工配置错误百出。 而至今Spring发展20年了还从未出过一次致命的BUG。不光如此还不断精进又加宽护城河推出SpringCloud微服务架构大型项目必用技术栈。
3、学习编程设计的典范
今天很多人认为学java过气了其实他根本不懂java的精髓。今天我们更多的是学java栈甚至学习Spring才是基础核心。
因为Spring是采用Java语言它的Spring的源码设计优雅、精妙、结构清晰、匠心独运处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践范例。如果最终想成为一个编程大咖必须翻阅Spring源码而这和编程语言无关。这套思想掌握可以用在其它语言中C、Python、go等。