体系结构
核心容器
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 | import org.springframework.beans.factory.xml.XmlBeanFactory; |
1 | import org.springframework.context.ApplicationContext; |
依赖注入
基于构造函数注入
基于设值函数注入
基于构造函数注入中,我们使用的是〈bean〉标签中的〈constructor-arg〉元素,
而在基于设值函数的注入中,我们使用的是〈bean〉标签中的〈property〉元素
如果你要把一个引用传递给一个对象,那么你需要使用 标签的 ref 属性,
而如果你要直接传递一个值,那么你应该使用 value 属性。
注入内部Beans
注入集合