原始方式整合
- 创建Maven工程 -->
- 导入依赖 -->
- 编写实体类 -->
- 编写Mapper接口 -->
- 编写Service接口 -->
- 编写Service接口实现 -->
- 编写Controller -->
- 编写相应配置文件 -->
- Spring配置文件:applicationContext.xml
- 组件扫描,扫描service和mapper
- SpringMVC配置文件:spring-mvc.xml
- 组件扫描,扫描controller
- 配置mvc注解驱动
- 配置内部资源视图解析器
- 开放静态资源访问权限
- ……等
- MyBatis映射文件:UserMapper.xml
- MyBatis核心文件:mybatis-config.xml
- 加载properties文件
- 定义别名
- 配置环境
- 加载映射
- 数据库连接信息文件:jdbc.properties
- Web.xml文件:web.xml
- spring监听器
- SpringMVC前端控制器
- 乱码过滤器
- ……等
- 日志文件:log4j.xml
- Spring配置文件:applicationContext.xml
Spring整合MyBatis
整合思路
将SqlSessionFactory配置到Spring容器中
<!--加载jdbc.properties-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!--配置数据源-->
<bean id="dateSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--配置MyBatis的SqlSessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<!--加载mybatis核心文件-->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
<!--扫描mapper所在的包 为mapper创建实现类-->
<!--这个可以配置在mybatis-config.xml 也可以配置在spring配置文件-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.itheima.mapper"></property>
</bean>
声明式事务控制实现
<!--平台事务管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--配置事务增强-->
<tx:advice id="tcAdvice">
<tx:attibutes>
<tx:method name="*"/>
</tx:attibutes>
</tx:advice>
<!--事务的aop织入-->
<aop:config>
<aop:advisor advice-ref="tcAdvice" pointcut="execution=(* com.itheima.service.impl.*.*(..))"></aop:advisor>
</aop:config>
Spring配置文件applicationContext.xml主要内容
- 组件扫描,扫描service和mapper
- 加载properties文件
- 配置数据源信息
- 配置SqlSessionFactory
- 扫描mapper所在的包,为mapper创建实现类
- 声明式事务控制
注意:mapper要想成功被实现,是通过session,session的产生又是通过SqlSessionFactory,创建SqlSessionFactory又需要配置DataSource和mybatis-config.xml核心配置。