org.springframework:spring-web
spring-web提供了核心HTTP集成,包括一些动载入Web ApplicationContext 特性的类、文件上传的支持类、便捷的工具辅助类、Spring HTTP调用、用于集成其他web框架的基础结构以及技术。
spring-web是一个一站式的du框架,提供了表现层(springmvc)到业务层(spring)再到数据层的全套解决方案;spring的两dao大核心IOC(控制反转)和AOP(面向切面编程)更是给我们的程序解耦和代码的简介提供了支持。
而Spring-webMVC是基于Spring功能之上添加的Web框架,想用pring-webMVC必须先依赖pring-web,pring-webMVC仅给spring的表现层提供支持。
org.springframework:spring-webmvc
spring-webmvc 是 Spring MVC 的一个实现。spriing-webmvc 依赖于 spring-web如果直接使用spring-webmvc,就会隐式地添加 spring-web。不必显示添加 spring-web。
该jar包含Spring MVC框架相关的所有类,如Servlets,Web MVC
org.springframework:spring-core
这个jar 文件包含Spring 框架基本的核心工具类。Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心。
annotation支持
convert类型转换
org.springframework:spring-test
在单元测试中,因为Junit默认配置的main方法不会生成spring容器,所以需要使用spring中对Junit的整合功能。
所以使用org.springframework:spring-test
导入依赖:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>……</version>
</dependency>
编写测试类:
@RunWith(value=SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:bean.xml" })
public class TestSpring{
@Autowired
private IUserService iUserService;
@Test
public void test(){
System.out.println("test");
}
}
/**
1.使用junit提供的一个注解把原有的main方法替换,替换成spring提供的
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
2. 告知spring的运行器,spring和IOC创建是基于xml还是注解的,并且说明位置
@ContextConfiguration
Locations:指定xml文件所在地,加上classpath关键字,表示在类路径下
classes:指定注解类所在的位置
@ContextConfiguration(classes=SpringConfiguration.class)
*/
在配置文件中,配置扫描该类注解。例如在bean.xml中:
<context:component-scan base-package="com.itheima"></context:component-scan>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring.version>5.0.2.RELEASE</spring.version>
<slf4j.version>1.6.6</slf4j.version>
<log4j.version>1.2.12</log4j.version>
<mysql.version>5.1.6</mysql.version>
<mybatis.version>3.4.5</mybatis.version>
</properties>
<dependencies>
<dependency>
<!-- spring的切入点表达式需要用的包,-->
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.8</version>
</dependency>
<!-- spring AOP所用-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 这个jar 文件为Spring 核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI 所需的全部类,instrumentation组件以及校验Validation 方面的相关类。
外部依赖spring-beans, (spring-aop) -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- spring的核心类,提供了核心HTTP集成,提供了表现层(springmvc)到业务层(spring)再到数据层的全套解决方案。
包括一些动载入Web ApplicationContext 特性的类、Lister类、文件上传的支持类、便捷的工具辅助类、Spring HTTP调用、用于集成其他web框架的基础结构以及技术-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- spring-webmvc 是 Spring MVC 的一个实现。spriing-webmvc 依赖于 spring-web如果直接使用spring-webmvc,就会隐式地添加 spring-web。不必显示添加 spring-web。
该jar包含Spring MVC框架相关的所有类,如Servlets,Web MVC-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 用来整合junit的spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Spring-tx模块负责在spring框架中实现事务管理功能。以aop切面的方式将事务注入到业务代码中,并实现不同类型的事务管理器。这篇文章主要介绍Spring-tx模块aop切面的相关实现类型-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- 这个jar 文件包含对Spring 对JDBC 数据访问进行封装的所有类-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- JDBC驱动包,若不用则JDBC无法访问数据库(无法注册驱动),在idea中新建项目时可以在选择依赖时勾选Mysql,这样就会自动加载进来。-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- HttpServletRequest和HttpServletResponse等对象-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<!--用于使用JSTL,jsp里面的EL表达式结合使用-->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- 打印日志-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<!-- Java的简单日志Facade (SLF4J)可以作为各种日志框架(例如Java .util)的简单Facade或抽象。允许终端用户在部署时插入所需的日志框架-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- mybatis核心类-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- 用来整合mybatis和spring的小框架 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.0</version>
</dependency>
<!-- 这里使用c3p0或druid 预告:本项目整合使用c3p0会有bug-->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>compile</scope>
</dependency>
</dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.0</version>
</dependency>