一、spring+springmvc+mybatis xml方式整合ssm项目
1.1 前置条件
1.1.1 数据库配置文件
- 创建连接数据库配置文件信息db.properties
db.driverClassName=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql:/
db.username=数据用户名
db.password=数据库密码
db.maxWait=60000
db.initialSize=100
db.maxActive=200
db.minIdle=10
1.1.2 日志打印配置文件
- 创建文件名为:log4j.properties
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
1.1 spring的配置
1.1.1 applicationContext.xml配置文件
- 配置扫描包:扫描除了含有Controller控制层外的注解,use-default-filters="true"开启默认扫描所有的注解,expression排除Controller注解类
<context:component-scan base-package="com.peanut.ssm" use-default-filters="true">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
- 配置数据库:引入数据配置文件信息,使用阿里的druid连接池,数据库相关在spring容器中配置(spring容器相当于是springmvc容器的父类,子类可以使用父类的资源,而父类不能使用子类的资源)
<context:property-placeholder location="classpath:db.properties"/>
<bean class="com.alibaba.druid.pool.DruidDataSource" id="dataSource">
<property name="driverClassName" value="${db.driverClassName}"/>
<property name="url" value="${db.url}"/>
<property name="username" value="${db.username}"/>
<property name="password" value="${db.password}"/>
</bean>
- 在个层添加相应的注解@Service这些
1.2 springmvc的配置
1.2.1 spring-servlet.xml配置文件
- 配置扫描包:只扫描Controller注解类下的所有
<context:component-scan base-package="com.peanut.ssm" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
- 配置处理器映射器和处理器适配器
<mvc:annotation-driven/>
- 配置内部资源视图解析器(添加页面视图前后缀)
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
- 对静态资源进行放行
<mvc:resources mapping="**/**" location="/"/>
1.2.2 文件位置注意点
- 当mapper.xml文件和mapper接口放在同一文件中时需要把它们编译在一起。扫描包时,是对它们的接口进行扫描,前提是文件和接口必须放在一起和同名。
- 指定编译位置,pom.xml配置
<build>
<resources>
<resource><directory>src/main/resources</directory></resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
对上述测试跑通
1.3 mybatis的配置(applicationContext.xml)
1.3.1 配置会话工厂(SqlSessionFactoryBean)
<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.peanut.ssm.model"/>
<property name="mapperLocations">
<value>
classpath*:com/peanut/ssm/mapper/*.xml
</value>
</property>
</bean>
1.3.2 配置一个地图扫描仪(MapperScannerConfigurer)
- 扫描mapper文件下所有的接口
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.peanut.ssm.mapper"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
- 添加xxxmapper.xml和xxxmapper接口即可,两者需要同名。