java作为最流行的网络编程语言之一,在市场占有率将近20%(2015年8月数据),对于从事软件开发和测试工作的工作者,我想java对大家都不会陌生
在早期,Spring作为更加重量级的Java技术(特别是EJB)的替代品被创造出来。相比EJB,Spring提供了一个更轻量更简洁的的编程模型。
它给予了普通Java对象(POJO)更加强大的能力,而这些能力是EJB和一些其他Java规格才拥有的。并且随着时间推移,Spring已持续发展到各个领域。
第一章的知识主要是对Spring开源框架的简单概括:
首先明确Spring是什么和它的用处?
Spring是由Rod Johnson创造的一个开源框架。Spring被创造出来以解决企业级应用开发的复杂问题,并且让普通的JavaBeans(plain-vanilla JavaBeans)
能够完成此前只有EJB才可能完成的任务。但是Spring的用处并不仅仅局限于服务器端开发。而且Java应用可以从Spring中获益,例如间接性、可测试性以及松耦合。
注:Spring使用了bean和JavaBean这两个词,但这并不表示一个Spring组件必须严格地遵从JavaBean的规格。一个Spring组件可以是任何形式的POJO。
必须明确Spring最基本的任务就是:简化java开发。那么Spring是怎么样实现这样的任务的呢?
它是通过四个策略来完成的。
1.基于POJO的轻量级与最小侵入式编程(Lightweight and minimally invasive development with POJOs)
注:最小侵入式编程我的理解应该是尽量不去修改源码。
当我们想要实现或是使用弄个功能时,需要我们继承已实现功能的类或是去实现接口,除非你不怕麻烦自己去创造新的类或接口。而Spring不会强迫你去实现接口和继承类,虽然一个类可能被Spring注解标注,但是它仍然是一个POJO。这样就满足了Spring的最小侵入式编程。
2.通过DI和面向接口实现松耦合(Loose coupling through DI and interface orientation)
我们实际开发过程中的应用都是由相互协作的多个类组成,传统的,每一个对象负责获取对它自己的依赖(与之协作的对象)的引用。这样的结果就是带来了代码的高度耦合和难以测试。耦合是具有双面性的,没有耦合的代码是没有实际作用的,但是高度耦合的代码是难以测试、重用和理解的。利用依赖注入(DI),对象的依赖关系将由系统中负责协调各对象的第三方组件在创建对象的时候进行设定。对于依赖注入的方式之一为构造器注入。
3.基于切面和惯例进行声明式编程(Declarative programming through aspects and common conventions)
DI能够让相互协作的软件组件保持松耦合,而面向切面变成(AOP)允许把遍布应用各处的功能分离出来形成可重用的组件。面向切面变成被定义为促使软件系统实现关注点分离的一项技术。何为关注点:系统服务(如:日志、事务管理和安全)通常被称为横切关注点。AOP能够使这些服务模块化,并以声明的方式将它们应用到它们需要影响的组件中去,这样能让组件更加关注自身的业务。
4.通过切面和模板减少样板式的代码(Eliminating boilerplate code with aspects and templates)
样板式代码对于大家可能并不陌生,如我们在访问数据库处理数据时,一定写过这样的代码,初始化数据访问框架、打开连接、处理数据、处理各种异常以及关闭资源,这其中,也就只有处理数据部分是不同的,而其它部分基本上是固定的,而这固定的部分就是样板式代码。
Spring容器负责创建对象装备它们,配置它们并管理它们的整个生命周期,可以这样说,容器是Spring框架的核心,Spring容器可以归为两种不同的类型:
1.bean工厂,提供基本的DI支持。
2.应用上下文,提供应用框架级别的服务。
Spring模块依据其所属的功能可划分6类不同的功能:
1.Spring核心容器:Beans、Core、Context、Expression、Contextsupport。
2.Spring的AOP模块:AOP、Aspects。
3.数据访问与集成:JDBC、Transaction、ORM、OXM、Messaging、JMS.
4.Web与远程调用:Web、Web servlet、Web portlet、WebSocket。
5.Instrumentation:Instrument、Instrument Tomcat。
6.测试:Test。
总之,依赖注入和面向切面编程是Spring框架最核心的部分,只有理解如何应用Spring最关键的功能,你才有能力去驾驭Spring去完善的项目。
好的开始是成功的一半!上面仅是本人对Spring In Action这本书第一章的读书笔记,大家仅供参考;有错误和纰漏的地方还望大家见谅!