优势:
- 有效组织中间层对象
- 实现了真正意义上的面向节后编程
- 尽可能少的依赖于它的APIs
- 易于进行单元测试
- 提高重用性
- 为数据存取提供一个一致的框架,简化底层数据库的访问方式
核心容器:
核心容器组成的核心,Beans,上下文和表达式语言模块,其细节如下:
-
核心模块提供了框架的基本组成部分,包括IoC和依赖注入功能。
-
Bean模块提供BeanFactory是工厂模式的经典实现。
-
Context 上下文模块建立在由核心和Bean类模块提供了坚实的基础,它是访问定义和配置的任何对象的媒介。在ApplicationContext接口是上下文模块的焦点。.
-
表达式语言模块提供了在运行时查询和操作对象图的强大的表达式语言
数据访问/集成:
数据访问/集成层包括JDBC,ORM,OXM,JMS和事务处理模块,其细节如下:
-
JDBC模块提供了不再需要冗长的JDBC编码相关了JDBC的抽象层。
-
ORM模块提供的集成层。流行的对象关系映射API,包括JPA,JDO,Hibernate和iBatis。
-
OXM模块提供了一个支持对象/ XML映射的抽象层,实现对JAXB,Castor,XMLBeans,JiBX和XStream 的抽象层。
-
Java消息服务JMS模块包含发布和订阅消息
-
事务模块支持编程和声明式事务管理实现特殊接口类,并为所有的POJO。
Web:
在Web层包括网络,Web-Servlet,Web-Struts和网络的Portlet 组件,其细节如下:
-
Web模块提供了基本的Web开发的集成特性,例如多方文件上传功能和使用的servlet监听器的IoC容器初始化和针对Web的应用程序上下文。
-
Web-Servlet 模块包含Spring的模型 - 视图 - 控制器(MVC)实现Web应用程序。
-
Web-Struts 模块包含支持类内的Spring应用程序集成了经典的Struts Web层。
-
Web-Portlet 模块提供了MVC实现在portlet环境中使用和镜子Web的Servlet的模块的功能。
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<bean id="chinese" class="com.bean.ChineseImpl">
<property name="name">
<value>小明</value>
</property>
<property name="age">
<value>10</value>
</property>
</bean>
<bean id="american" class="com.bean.AmericanImpl">
<property name="name">
<value>Tom</value>
</property>
<property name="age">
<value>15</value>
</property>
</bean>
</beans>
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
Person person=(Person)context.getBean("chinese");
person.Speak();
person=(Person)context.getBean("american");
person.Speak();