SSM框架(SpringMVC + Spring + MyBatis)常用的jar包介绍
junit.jar:
junit是java语言的单元测试框架,是程序员进行的测试,所以又成为白盒测试。Junit是xUnit的一个子集,在c++python,java等语言中都有不同的名字。里面有许多测试的封装函数,并且每一个单元测试都需要带上@Test。
<!-- 使用junit4 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
logback:
是由log4j的创始人设计的又一个开源的日志组件,当前的logback分成三个模块:
logback-core.jar
logback-classic.jar
logback-access.jar
core是其他两个模块的基础,classic是log4j的一个改良版本,access模块与Servlet容易集成提供从Http访问日志的功能。
/**************************************************************************************************************************************
名词解释:
日志:
服务器运行,数据库的操作,电脑上的程序,手机上的app在运行,服务的时候,都会产生一个叫做log的事件记录,每一行的日志都会记载着日期,具体时间,使用者,及进行的操作等。
log4j.jar:
log4j是apache的一个开源项目,通过log4j,我们可以把控制日志信息输送到你想要到达的地方,例如控制台,各种项目中的组件,文件中等等。我们可以决定每一条的日志信息输出format(格式)。在项目庞大的时候,我们就非常需要log4j这类的操作包,来查看它的输出信息。同时log4j也是一个非常强大的日志包,它内部有许多语言的接口,例如c,c++,net,sql,java等等。
****************************************************************************************************************************************/
slf4j-api.jar:
slf4j-api是简单的日志门面,是存取日志的标准接口。为什么要使用slf4j?我们要知道slf4j知识一个日志标准,并不是日志系统的具体实现,slf4j只做两件事,提供日志接口,提供获取具体日志对象的方法。logback是slf4j的具体实现。slf4j的用法就是常年不变的一句"Logger logger = LoggerFactory.getLogger(Object.class);通过LoggerFactory去拿slf4j的具体接口。
<!-- 1:日志 java日志:slf4j,log4j,
logback,common-logging
slf4j是规范/接口
日志实现:log4j,logback,common-logging
使用slf4j+logback -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.1</version>
</dependency>
<!-- 实现slf4j接口并整合 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.1</version>
</dependency>
(logback-access.jar加不加就要看你项目情况而定了)
mysql-connector-java.jar:
是java连接mysql需要的驱动包,即mysql的jdbc驱动包,因为我们需要使用jdbc来连接mysql数据库。
c3p0.jar:
c3p0是一个开源的jdbc连接池,它拓展了传统的jdbc数据库连接池,支持jdbc2的标准扩展和jdbc3的规范。
为什么使用数据库连接池?
因为用户每次连接都需要验证,消耗大量的时间和资源,我们在系统初始化的时候,将数据库连接作为一个对象存放在数据库连接池中,当用户需要访问数据库时,不会创建一个新的连接,而是从数据库连接池中取出一个已经建立的空闲连接对象,用户使用结束后,对象不会关闭,而是放回数据库连接池中。数据库连接池管理连接,断开,监视数据库的连接数量和使用情况。
同时,也可以配置许多属性,例如最大连接数,连接失败重试次数,获取连接超时时间,连接断开后所有事务进行回滚操作。
<!-- 数据库相关依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
mybatis.jar:
MyBatis 是支持定制化 SQL、存储过程以及映射的持久层框架。MyBatis 避免了JDBC繁琐的代码和手动设置参数去获取结果集。MyBatis 通过简单的配置xml或者注解,将接口和 Java 的 POJOs(普通的 Java对象)映射成数据库中的记录。
<!-- DAO框架:mybatis依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.3.0</version>
</dependency>
mybatis-spring.jar:
MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException。最终,可以做到应用代码不依赖于 MyBatis,Spring 或 MyBatis-Spring。
<!-- mybatis自身实现的spring整合依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.3</version>
</dependency>
standard.jar和jstl.jar:
standard和jstl是jsp编写所需要的jar包,standard是jsp的标准标签库,jstl是用于jsp页面中的el表达式。
jackson-databind.jar:
将JSON格式的数据转化为类对象,我们知道从web从服务器中拿数据,是访问api(Application Programming Interface,应用程序接口)来拿到封装成json格式的数据,在这个包中就实现了这样一个方法,就不需要我们去手动实现这一过程了。
javax.servlet-api.jar:
编写过servlet就知道要用到HttpServletRequest和HttpServletResponse等对象,这些对象都是要靠这个jar包才能使用的。但是在3.0版本前,这个包是叫做:servlet-api.jar
<!-- 3:Servlet web相关依赖 -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.4</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
spring-core.jar:
Spring的核心组件,spring框架都需要用到这个jar包。
spring-beans.jar:
是那些形成Spring应用的主干的java对象。它们被Spring IOC容器初始化,装配,和管理。这些beans通过容器中配置的元数据创建。比如,以XML文件中<bean/>的形式定义。
即写了一个接口,这个接口通过一个类实现了,然后当我们要进行调用这个接口的时候,只需要找到接口,而不需要找到实现它的类。这位大佬的博客里讲得很清楚,大家看看,里面有讲到什么是IOC(控制反转)和DI(依赖注入):
spring-context.jar:
通过应用上下文装载bean的定义并把它们组装起来。Spring应用上下文全权负责对象的创建和组装。Spring自带了多种应用上下文的实现,它们之间主要的区别仅仅在于如何加载配置。
<!-- 1)spring核心依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
spring-jdbc.jar:
是spring 官方提供的一个持久层框架,对jdbc进行了抽象和封装,消除了重复冗余的jdbc重复性的代码,使操作数据库变的更简单。
spring-tx.jar:
负责在spring框架中实现事务管理功能。
<!-- 2)spring dao依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
spring-web.jar:
这个jar文件包含Web应用开发时,用到Spring框架时所需的核心类。
spring-webmvc.jar:
这个jar文件包含Spring MVC框架相关的所有类。包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。
<!-- 3)spring web相关依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
spring-test.jar:
使用spring中对Junit框架的整合功能, 对于单元测试和集成测试的简单封装。
如果用到切面编程(AOP),还需要用到aspectjweaver.jar这个包。
<!-- 4)spring test相关依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.13</version>
</dependency>