一、spring+springmvc+mybatis xml方式整合ssm项目
1.1 前置条件
1.1.1 数据库配置文件
创建连接数据库配置文件信息db.properties
db.driverClassName=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql:///数据库名?characterEncoding=utf-8&serverTimezone=UTC&allowPublicKeyRetrieval=true&useSSL=false
db.username=数据用户名
db.password=数据库密码
db.maxWait=60000
db.initialSize=100
db.maxActive=200
db.minIdle=10
1
2
3
4
5
6
7
8
9
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
2
3
4
5
6
1.1 spring的配置
1.1.1 applicationContext.xml配置文件
配置扫描包:扫描除了含有Controller控制层外的注解,use-default-filters="true"开启默认扫描所有的注解,expression排除Controller注解类
<!--扫描包,排除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>
1
2
3
4
配置数据库:引入数据配置文件信息,使用阿里的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>
1
2
3
4
5
6
7
8
9
在个层添加相应的注解@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>
1
2
3
配置处理器映射器和处理器适配器
<!--注意是mvc包的-->
<mvc:annotation-driven/>
1
2
配置内部资源视图解析器(添加页面视图前后缀)
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
1
2
3
4
对静态资源进行放行
<mvc:resources mapping="**/**" location="/"/>
1
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
2
3
4
5
6
7
8
9
10
11
对上述测试跑通
1.3 mybatis的配置(applicationContext.xml)
1.3.1 配置会话工厂(SqlSessionFactoryBean)
<!--配置mybatis-->
<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory">
<!--引入数据源-->
<property name="dataSource" ref="dataSource"/>
<!--给实体类起别名-->
<property name="typeAliasesPackage" value="com.peanut.ssm.model"/>
<!--扫描mapper文件下的所有额*.xml-->
<property name="mapperLocations">
<value>
classpath*:com/peanut/ssm/mapper/*.xml
</value>
</property>
</bean>
1
2
3
4
5
6
7
8
9
10
11
12
13
1.3.2 配置一个地图扫描仪(MapperScannerConfigurer)
扫描mapper文件下所有的接口
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--扫描mapper下所有接口-->
<property name="basePackage" value="com.peanut.ssm.mapper"/>
<!--引用给sqlSessionFactory-->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
1
2
3
4
5
6
最后添加xxxmapper.xml和xxxmapper接口即可,两者需要同名。
原文链接:https://blog.csdn.net/weixin_45800201/article/details/124577729