Spring-boot-Mybatis-Starter

一、简介

以我的理解,spring-boot-mybatis-starter就是mybatis在spring boot的嵌入,嵌入了一些上下文的自动配置,把一些容器中需要的实例的内容,由代码编写转换为外部配置。
在用Spring Initializr初始化的项目中,有SQL选项,当选择了Mybatis后,pom.xml文件中会自动带有mybatis-spring-boot-starter的配置。

Spring-boot-Mybatis-Starter_第1张图片
【图1】
这个便是Spring-boot-Mybatis。
在此之前,用Mybatis的方式是引用:


		org.mybatis
		mybatis-spring
		1.2.2
	
	
		org.mybatis
		mybatis
		3.2.8
	

现在只需引用mybatis-spring-boot-starter,查看它的dependencies,包含有mybatis-spring、spring-boot-starter-jdbc。
而s-b-m-s则能自动识别配置有的datasource(也就是在.properties中配置的datasource),而不需要再在代码中写一个DataSource的bean,一个SqlSessionFactory的bean. 如图2。因为它的发明正是为了方便和简化这些业务。
Spring-boot-Mybatis-Starter_第2张图片
【图2】

二、它做的事

在spring-boot-starter官网介绍中我们可以看到,它启动后会做如下事情:

  1. 自动监测存在的DataSource(即在properties文件中配置的DataSource,如图3)
  2. 通过此DataSourse自动创建并注册SqlSessionFactory实例
  3. 从SqlSessionFactory中注册并创建出一个SqlSessionTemplate实例
  4. 自动扫描你的mappers文件,链接他们到SqlSessionTemplate并且注册到Spring的上下文中,这样他们就能注入到你的Mapper实例.

Spring-boot-Mybatis-Starter_第3张图片
【图3】

这里要注意的是:

MyBatis-Spring-Boot-Starter会默认去寻找标注有@Mapper的mapper文件。但是一个个去配置,重复的工作程序员一般都要避免,所以MyBatis-Spring-Boot-Starter也允许你一步到位:
其途径有三种,我只介绍MapperScan标注法,其他两种方法,请看官网Injecting Mappers

MapperScan(“mapper的位置”)标注,直接将所有的mapper都注入到Spring环境中来了,每个Mapper上的@Mapper标注就可以省略掉啦~
Spring-boot-Mybatis-Starter_第4张图片

三、我们做的事

1. 在pom中引用它,具体看页尾附件。
2. 在properties文件中配置DataSource;
3. 在properties配置它的参数type-aliases-package(Mapper中用到的参数或返回的模型),mapper-locations(mapper的xml配置文件路径),这些参数具体看官网Configuration部分

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/demo
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
mybatis.mapper-locations=classpath:mappers/*.xml

4. 注入mappers,也就是上文介绍的MapperScan标注配置。

以上四步缺一不可哦

附件:(pom.xml配置)



	4.0.0

	com.example
	demo
	0.0.1-SNAPSHOT
	jar

	demo
	Demo project for Spring Boot

	
		org.springframework.boot
		spring-boot-starter-parent
		1.5.9.RELEASE
		 
	

	
		UTF-8
		UTF-8
		1.8
	

	
		
			org.springframework.boot
			spring-boot-starter-web
		
		
			org.mybatis.spring.boot
			mybatis-spring-boot-starter
			1.3.1
		

		
			mysql
			mysql-connector-java
			runtime
		
		
			org.springframework.boot
			spring-boot-starter-test
			test
		
	

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	




你可能感兴趣的:(java,后端开发,spring,mybatis,spring-boot)