外部依赖,A 外部依赖 B,即 A 和 B 必须都安装,否则 A就不能正常工作。
spring-core
是 spring 框架基本的核心工具类。Spring 其他组件都要使用这个包的类,是其他组件的基本核心。
spring-beans
所有应用都要用到,包含访问配置文件、创建和管理 bean 以及进行 Inversion of Control(控制反转) / Dependency Injection(依赖注入)操作相关的所有类。外部依赖 spring-core
spring-aop
切面编程,
外部依赖spring-core, (spring-beans,AOP Alliance, CGLIB,Commons Attributes)。
spring-context
外部依赖spring-beans, (spring-aop)
spring-dao.jar
这个jar 文件包含Spring DAO、Spring Transaction 进行数据访问的所有类。为了使用声明型事务支持,还需在自己的应用里包含spring-aop.jar。
外部依赖spring-core,(spring-aop, spring-context, JTA API)。
spring-jdbc.jar
这个jar 文件包含对Spring 对JDBC 数据访问进行封装的所有类。
外部依赖spring-beans,spring-dao。
Spring-DAO / Spring-ORM / Spring-JDBC 之间的区别
首先,这三者都是用来搞数据库的。
1 Spring JDBC 提供了可以减少自己写 SQL 查询来访问数据的样板代码的模板
2 Spring-ORM 提供了通过 ORM ,比如 Hibernate / MyBatis
3 Spring-DAO 以一个一致的方式轻松使用不同的数据访问技术诸如 JDBC、Hivernate 或者 JDO
4 Spring-Data 对 DAO 又进行了一层封装,以便支持sql 和 nosql
到底该怎么选择?
Spring 主旨是,作为一名开发人员,在你写代码的时候更多专注于业务逻辑,如果你把业务处理好了,改变底层技术只是一些实现或者配置细节的工作。所以一般的约定是:
1 使用 POJO 类为实体定义一个数据模型,并使用 get 和 set 方法来表示实体的属性以及和其他实体的关系。你当然需要根据底层技术的需要为实体类及其方法加注解,但是现在,作为入门 POJO 足够了。现在你只需要专注于业务需求。
2 为你的 DAO 定义接口。一个 DAO 刚好包含一个实体,但你也无需为每个实体都对应一个 DAO,因为通过关联关系你可以加载到额外的实体。遵循严格的命名约定定义查找器方法。
藉此,其他人就可以模仿你的 DAO 开始业务层的工作了。
3 你可以学习不同的持久层技术(sql,no-sql)来寻找最适合你需要的那个,并最终选择一个。藉此,为你的实体注解并实现 DAO(或者如果你选择使用 Spring-Data 你可以让 Spring 来实现 DAO)。
spring-support.jar
这个jar 文件包含支持UI模版(Velocity,FreeMarker,JasperReports),邮件服务,脚本服务(JRuby),缓存Cache(EHCache),任务计划Scheduling(uartz)方面的类。
外部依赖spring-context, (spring-jdbc, Velocity, FreeMarker, JasperReports, BSH, Groovy, JRuby, Quartz, EHCache)
spring-web.jar
这个jar 文件包含Web 应用开发时,用到Spring 框架时所需的核心类,包括自动载入Web Application Context 特性的类、Struts 与JSF 集成类、文件上传的支持类、Filter 类和大量工具辅助类。
外部依赖spring-context, Servlet API, (JSP API, JSTL, Commons FileUpload, COS)。
spring-webmvc.jar
这个jar 文件包含Spring MVC 框架相关的所有类。包括框架的Servlets,Web MVC框架,控制器和视图支持。当然,如果你的应用使用了独立的MVC 框架,则无需这个JAR 文件里的任何类。
外部依赖spring-web, (spring-support,Tiles,iText,POI)。