目录
1.导入jar包
为了使初学者减少不必要的学习阻碍,本例采用手动导入jar包(不使用maven),在你的web工程的WEB-INF/lib目录下导入如下jar包
这里给出各jar包的下载地址:
spring和spring-mvc:https://repo.spring.io/release/org/springframework/spring/
myBatis:https://github.com/mybatis/mybatis-3/releases
mybatis-spring:https://github.com/mybatis/spring/release
如果不想在官网找的话,其他jar包均可以在mvn仓库中搜索到,地址:https://mvnrepository.com/,例如mysql的驱动包:
这里有几点需要注意:
- 要特别注意jar包的版本,不同版本的jar包之间可能会有版本冲突问题,例如mytatis-3.4.2和mybatis-spring-1.2.5会有冲突,不注意到后面报错会很难排查,建议读者先按博主的jar包版本下载。
- 还是jar包的版本,mysql驱动包6版本之前连接数据库会有不同,后面会有提到,还是建议读者和博主版本一致。
- 细心的读者可能会发现myBatis的jar包怎么会有两个?这是因为在spring3发布的时候,myBatis3还没有完成,所以spring并不支持myBatis3,故MyBatis社区就自己开发了MyBatis-Spring项目用以支持spring。
- 在本例中除去log4j日志包以外都是必须包!
2.项目目录总览
在这里先给出整个ssm整合与测试的结构图,目的是为了使读者能够全局的有一个大概印象,也方便在后续的搭建过程中能够回到这里查漏补缺,读者这里不需要知道每个文件含义,之后都会说明,如下图:
3.配置Spring IoC容器
IoC(Inversion of Control ),即控制反转,是spring的核心。什么是控制反转呢?简单来说就是原来由你自己创建并控制的java对象现在交由spring内的容器来控制并管理,即控制权被反转了,而这个容器就是IoC容器。
而配置IoC容器,就是往这个容器中提前放入我们项目中可能会用到的各种对象,什么时候用,什么时候再取出来(是不是很方便???),通常我们有两种方式来配置,一个是xml文件配置,一个是注解配置。对于第三方的类,我们通常通过xml配置,对于我们自己创建的类,我们通常通过注解进行配置。
在src的根目录下新建applicationContext.xml文件(重要部分均做了注释)
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:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd"> <!-- 引入jdbc配置文件 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties"/> </bean> <!-- 配置数据库连接池 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${jdbc.mysql.driver}"/> <property name="url" value="${jdbc.mysql.url}"/> <property name="username" value="${jdbc.mysql.username}"/> <property name="password" value="${jdbc.mysql.password}"/> <property name="initialSize" value="${jdbc.initialSize}"/> <property name="minIdle" value="${jdbc.minIdle}"/> <property name="maxIdle" value="${jdbc.maxIdle}"/> <property name="maxActive"