体系结构

核心容器

spring-core、spring-beans、spring-context、spring-context-support、spring-expression
①:框架基本组成部分,包括Ioc、依赖注入
②:BeanFactory,工厂模式的微妙实现
③:类似JNDI注册的方式访问对象,继承自beans
④:提供第三方库集成
⑤:表达式语言,用于运行时查询和操作对象图

数据访问、集成

JDBC ORM OXM JMS 事务处理
①:提供JDBC抽象层
②:对流行的对象关系隐射API的集成(JPA、JDO、Hibernate)
③:对OXM实现的支持(JAXB、Castor、XML Beans、JiBX、Xstream)
⑤:实现特殊接口类及所有POJO支持编程式和声明式事务管理

Web

Web
Web-Mvc
Web-Scoket:为 WebSocket-based 提供了支持,提供了客户端和服务器端之间通信的两种方式
Web-Portlet:用于Portlet环境的MVC实现,并反映了spring-webmvc模块的功能

其他重要模块

AOP、Aspects、Instrumentation,Web 和测试模块

IoC容器

spring BeanFactory
spring ApplicationContext

1
2
3
4
5
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
HelloWorld w = (HelloWorld) factory.getBean("hellowold");
1
2
3
4
5
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
HelloWorld helloWorld = (HelloWorld) context.getBean("hellowold");

依赖注入

基于构造函数注入
基于设值函数注入

基于构造函数注入中,我们使用的是〈bean〉标签中的〈constructor-arg〉元素,
而在基于设值函数的注入中,我们使用的是〈bean〉标签中的〈property〉元素    
如果你要把一个引用传递给一个对象,那么你需要使用 标签的 ref 属性,
而如果你要直接传递一个值,那么你应该使用 value 属性。

注入内部Beans
注入集合