Spring的设计理念
在应用开发中,支持POJO和使用javabean的开发方式,是应用面向接口开发,充分支持OO的设计方法。
Spring的子项目
Spring Framework(Core):Spring核心,包含了一系列IoC容器的的射界,提供了依赖反转模式的实现;同时集成了AOP功能;以及MVC,JDBC,事务处理等模块
Spring Security:Spring的安全框架
Spring Security OAuth:为OAuth在spring的集成提供支持
Spring Batch:提供批处理应用和自动化操作,特点是不需要用户交互
Spring AMQP:为spring更好使用基于AMQP(高级消息队列协议)的消息服务而开发
Spring Data:为spring提供使用非关系型数据库的能力,例如数据存放在mongodb等非关系型数据库;例如Map-Reduce中的分布式存储,云计算存储环境等。
Spring的架构
IOC:包含最基本的IOC容器Beanfactory的接口与实现,如XmlBeanFactory就是一个最基本的BeanFactory;以及容器的高级形态ApplicationContext应用上下文,例如ClassPathXmlApplicationContext
AOP:围绕着AOP的增强功能,spring集成了AspectJ作为AOP的一个特定实现,同时还在JVM动态代理/CGLIB基础上实现了一个AOP框架。
Spring MVC:适用于web 应用,以DispatcherServlet为核心,实现了MVC模式,包括怎么与web环境集成,Web请求的拦截、分发、处理和ModelAndView的返回等
Spring JDBC/Spring ORM:适用于对关系数据库的数据的处理。
Spring事务处理:通过AOP的切面增强实现了声明式事务处理的功能。