mybatis学习教程中级(十一)mybatis和spring框架整合(前奏篇2)

简介: 1、前言我们前奏篇讲解了用dao+daoimpl+spring整合sqlconfig。

1、前言

我们前奏篇讲解了用dao+daoimpl+spring整合sqlconfig。我们发现还有daoimpl这个东西,这一章我们也就讲解,去掉这个impl吧。使用mapper代理方式。

2、mapper.java代理

spring代理设置,没有了impl作为service,那么我就用MapperSacnnerConfigurer的basePackage扫描我们的mapper类吧。扫描完毕之后---》》获取MappFactory<T>---->

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
	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-3.2.xsd 
		http://www.springframework.org/schema/mvc 
		http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
		http://www.springframework.org/schema/context 
		http://www.springframework.org/schema/context/spring-context-3.2.xsd 
		http://www.springframework.org/schema/aop 
		http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
		http://www.springframework.org/schema/tx 
		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">

	<!-- 加载配置文件 -->
	<context:property-placeholder location="classpath:/config/db.properties" />
	<!-- 数据库连接池 -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		destroy-method="close">
		<property name="driverClassName" value="${jdbc.driver}" />
		<property name="url" value="${jdbc.url}" />
		<property name="username" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />
		<property name="maxActive" value="10" />
		<property name="maxIdle" value="5" />
	</bean>
	<!-- SqlsessionFactory -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 数据源 -->
		<property name="dataSource" ref="dataSource"/>
		<!-- mybatis配置文件 -->
		<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"/>
	</bean>
	<!-- 1、配置原始dao、impl(多而且繁琐) -->
	<!--
			<bean id="userDao" class="com.ycy.mybatis.dao.impl.UserMappermpl">
				<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
			</bean>-->
	<!-- 配置mapper.java代理 -->
	<!--2、MapperFactoryBean(多而且繁琐):用于生成mapper代理对象
			<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
				<property name="mapperInterface" value="cn.itcast.mybatis.mapper.UserMapper"/>
				<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
			</bean> -->
	<!-- 3、MapperScannerConfigurer(扫描简单):mapper的扫描器,将包下边的mapper接口自动创建代理对象,
			自动创建到spring容器中,bean的id是mapper的类名(首字母小写)
	 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<!-- 配置扫描包的路径
		如果要扫描多个包,中间使用半角逗号分隔
		 -->
		<property name="basePackage" value="com.ycy.mybatis.dao"/>
		<!-- 使用sqlSessionFactoryBeanName -->
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
	</bean>
</beans>
2.1 关于第一种方式三种注入spring方式
第一种就不用说了,就是我们常见的bean注入,找到impl类,注入实体,找到实现方法,找到namespace----》找到sqlconfig----》找到了sqlstatament,实现组装数据。
第二种方式与第三种方式,来自哪里呢?三个类如下图片,第一个类是是根据类路径扫描(后面两个类都会用到);第二个类是单个扫描,第三个是basepackage扫描。就这么完美的注入然后:找到sqlconfig----》找到了sqlstatament,实现组装数据。
2.2来自其他网站说明,我觉得还是可以,摘抄过来如下:

要创建 MapperScannerConfigurer,可以在 Spring 的配置中添加如下代码:

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="org.mybatis.spring.sample.mapper" />
</bean>

basePackage 属性是让你为映射器接口文件设置基本的包路径。 你可以使用分号或逗号 作为分隔符设置多于一个的包路径。每个映射器将会在指定的包路径中递归地被搜索到。

注 意 , 没 有 必 要 去 指 定 SqlSessionFactory 或 SqlSessionTemplate , 因 为 MapperScannerConfigurer 将会创建 MapperFactoryBean,之后自动装配。但是,如果你使 用了一个 以上的 DataSource ,那 么自动 装配可 能会失效 。这种 情况下 ,你可 以使用 sqlSessionFactoryBeanName 或 sqlSessionTemplateBeanName 属性来设置正确的 bean 名 称来使用。这就是它如何来配置的,注意 bean 的名称是必须的,而不是 bean 的引用,因 此,value 属性在这里替代通常的 ref:

<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
2.3测试如旧
package com.ycy.mybatis.springmybatisTest;

import com.ycy.mybatis.dao.UserMapper;
import com.ycy.mybatis.module.User;
import javafx.application.Application;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.applet.AppletContext;
/**
 * Created by Administrator on 2015/9/15 0015.
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:spring/applicationContext.xml"})
public class Test11 {
    @Autowired
    private  UserMapper userMapper;
    @Test
    public  void  test111() throws Exception {
        User user=userMapper.getUserById(1);
        System.out.println( user.getUsername());
    }
}




 
 
目录
相关文章
|
12天前
|
前端开发 Java 数据库
SpringBoot学习
【10月更文挑战第7天】Spring学习
31 9
|
7天前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。
19 2
|
14天前
|
XML Java 数据格式
Spring学习
【10月更文挑战第6天】Spring学习
17 1
|
18天前
|
Java 测试技术 开发者
springboot学习四:Spring Boot profile多环境配置、devtools热部署
这篇文章主要介绍了如何在Spring Boot中进行多环境配置以及如何整合DevTools实现热部署,以提高开发效率。
40 2
|
18天前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
40 1
|
18天前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
14 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
18天前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
16 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
18天前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
29 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
9天前
|
缓存 Cloud Native 安全
探索阿里巴巴新型ORM框架:超越MybatisPlus?
【10月更文挑战第9天】在Java开发领域,Mybatis及其增强工具MybatisPlus长期占据着ORM(对象关系映射)技术的主导地位。然而,随着技术的发展,阿里巴巴集团推出了一种新型ORM框架,旨在提供更高效、更简洁的开发体验。本文将对这一新型ORM框架进行探索,分析其特性,并与MybatisPlus进行比较。
16 0
|
18天前
|
Java Spring
springboot 学习十一:Spring Boot 优雅的集成 Lombok
这篇文章是关于如何在Spring Boot项目中集成Lombok,以简化JavaBean的编写,避免冗余代码,并提供了相关的配置步骤和常用注解的介绍。
62 0