1、spring框架结构和jar包
1)、spring分为5部分:core、aop、data access、web、test,图中每个矩形框都是一个jar包,这些jar包的"groupId"都是"org.springframework"。
2)、core部分包括四个模块:
(1)spring-core:依赖注入IoC与DI的最基本实现; (2)spring-beans:Bean工厂与bean的装配; (3)spring-context:spring的context上下文即IoC容器; (4)spring-expressi on:spring表达式语言 ; 依赖关系:
因为spring-core依赖了commons-logging,而其他模块都依赖了spring-core,所以整个spring框架都依赖了commons-logging,如果有自己的日志实现如log4j,可以排除对commons-logging的依赖,没有日志实现而排除了commons-logging依赖,编译报错。
3)、aop部分包含四个模块
(1)spring-aop:面向切面编程 (2)spring-aspects:集成AspectJ (3)spring-instrument:提供一些类级的工具支持和ClassLoader级的实现,用于服务器。 (4)spring-instrument-tomcat:针对tomcat的instrument实现。
aop依赖关系
4)、data access部分包含5个模块
(1)、spring-jdbc:jdbc的支持 (2)spring-tx:事务控制 (3)spring-orm:对象关系映射,集成orm框架 (4)spring-oxm:对象xml映射 (5)spring-jms:java消息服务
5)web部分包含四个部分
(1)spring-web:基础web功能,如文件上传 (2)spring-webmvc:mvc实现 (3)spring-webmvc-portlet:基于portlet的mvc实现 (4)spring-struts:与struts的集成,不推荐,spring4不再提供。
6)、test分布只有一个模块
(1)spring-test:spring测试,提供junit与mock测试功能 (2)spring-context-support:spring额外支持包,比如邮件服务视图解析。
Spring是一个一站式的轻量级开源软件,每一层Spring提供不同的解决技术。 WEB层:SpringMVC 业务层:Spring的IOC 持久层:Spring的JDBCTemplate(Spring的JDBC模板,ORM模板用于整合其他的持久层框架)。
7)、spring各个jar作用
Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现 Spring Aspects:Spring提供的对AspectJ框架的整合 Spring Beans:Spring IOC的基础实现,包含访问配置文件、创建和管理bean等。Spring Context:在基础IOC功能上提供扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的支持。 Spring Context Support:Spring context的扩展支持,用于MVC方面。 Spring Core:Spring的核心工具包 Spring exp ression:Spring表达式语言 Spring Framework Bom: Spring Instrument:Spring对服务器的代理接口 Spring Instrument Tomcat:Spring对tomcat连接池的集成 Spring JDBC:对JDBC 的简单封装 Spring JMS:为简化jms api的使用而做的简单封装 Spring Messaging: Spring orm:整合第三方的orm实现,如hibernate,ibatis,jdo以及spring 的jpa实现Spring oxm:Spring对于object/xml映射的支持,可以让;">Spring test:对JUNIT等测试框架的简单封装 Spring tx:为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理。 Spring web:包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。 Spring webmvc:包含SpringMVC框架相关的所有类。包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、 Tiles、Velocity、XSLT相关类。当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。 Spring webmvc portlet:Spring MVC的增强Spring websocket:提供Socket通信, web端的推送功能。