1.说在前面
什么样的架构,我们认为是一个优秀的架构?
判断准则:可维护性好,可拓展性好,性能好。
什么叫可拓展性好?
A:在不断添加新代码的同时,可以不修改原有代码,即符合开闭原则
如何让程序的可维护性好,可拓展性好呢?
业界有一个公认的标准:高内聚,低耦合。
高内聚:就是尽量将代码写在与之功能描述一致的模块中。如User表的操作就写在
UserDAO里面,不要写在非UserDAO的类里面。
低耦合:就是尽量减少类与类之间的直接关系。
直接关系:Controller层依赖Service层,在Controller层直接new Service层的类的对象。Service层依赖Dao层,在Service层直接new Dao层的对象。
Spring框架就是通过IoC/DI(控制反转/依赖注入)实现程序的解耦。从而提高程序的维护性和拓展性。
2.Spring概述
2.1 Spring是什么
Spring是一个JavaEE轻量级的一站式开发框架。
JavaEE:就是用于开发企业级(B/S)应用的技术。
轻量级:使用最少代码启动框架,然后根据需求选择需要使用的模块。
重量级:早期的EJB,开发一个HelloWorld程序都需要引入EJB的全部模块。
一站式:提供了表示层,服务层,持久层的所有支持。
2.2 Spring框架出现的背景
世界上第一套由Java官方Sun公司推出的企业级开发框架EJB瞬间风靡全球,被各大公司所应用。
Spring之父,Rod Jonhson是一个音乐博士,在Sun公司的大力推广下,也成为EJB框架的使用者。
在深入研究完EJB框架(由Sun主导开发的一个JavaEE开发框架),无法接受这么一个框架被吹成世界第一,具体查看他吐槽EJB的书《Expert one on one J2EE design and development》。
其中突出被他吐槽最厉害的一个点就是EJB的重量级,就是只要使用EJB里面任何一个组件。都要导入EJB所有的jar包。于是他就提供了一个解决方案:轻量级的一站式企业级开发框架。
那么什么是轻量级呢?
就是除内核模块,其他模块由开发者自由选择使用,同时支持整合其他框架。也可以成为可插拔式开发框架,像插头和插座一样,插上就用,不用就拔下来。这就是Spring框架核心理念。
那么什么是一站式呢?
就是Spring框架提供涵盖了JavaEE开发的表示层,服务层,持久层的所有组件功能。也就是说,原则上,学完一套Spring框架,不用其他框架就可以完成网站一条流程的开发。
2.3Spring框架的作用
根据以上章节的描述。Spring是一个JavaEE轻量级一站式开发框架。它提供的功能涵盖了JavaEE程序中的表示层,服务层,持久层功能组件。这意味着,单单Spring框架就可以满足整个JavaEE程序的开发。
但Spring框架,更加强调的是它的轻量级(模块的可插拔)。也就是说,除了内核模块,其他功能模块如果你不想使用可以不用,并且Spring框架能够整合任何第三方的框架。在现实开发中,Spring主要用于整合其他框架。
2.4 总结
1.Spring是一个一站式的企业级(JavaEE)开发框架,意味着,仅仅使用一个Spring框架就可以满足JavaEE开发的表示层,服务层,持久层的开发.
2.Spring强调的理念是:轻量级.意味着Spring提供的功能模块,除了内核模块