昨天,有人问我对Spring的理解,总结一下:
Spring现在已经覆盖系统各个层次,在web层,有Spring Web、Spring Webflow,在业务逻辑层,有Spring Core,在数据持久层,Spring整合了Ibatis(SQL Mapping)、Hibernate(ORM)、NOSQL,在集成层,Spring有Spring Integration,还有针对特定场景的解决方案,如Spring batch、Spring Message、Spring Security、Spring Social等等。
Spring Core是一个IOC容器,负责对象的生命周期管理,正因为其负责了对象的生命周期管理,Spring可以通过Proxy和AOP等技术在对象创建和调用的时候玩一把魔术,如:动态为对象的调用植入一些代码,使得开发人员可以把业务逻辑无关的调用系统服务的逻辑切面化,实现声明式配置。另外,Spring还负责了对象的组装,使得面向接口的编程更为简单,省去很多Factory逻辑。
其它方案都可以说是基于Spring Core的,面向特定应用场景的解决方案,不多说。