Java代码
?? package com.tiantian.mybatis.mapper; ??
?? import java.util.List;
?? import com.tiantian.mybatis.model.Blog; ??
?? publicinterface BlogMapper { ??
?? public Blog selectBlog(int id); ??
?? publicvoid insertBlog(Blog blog); ??
?? publicvoid updateBlog(Blog blog); ??
?? publicvoid deleteBlog(int id); ??
?? public List
BlogServiceImpl.java:
Java代码
?? package com.tiantian.mybatis.service.impl;
??
?? import java.util.List;
?? import javax.annotation.Resource;
?? import org.springframework.stereotype.Service; ?? import com.tiantian.mybatis.mapper.BlogMapper; ?? import com.tiantian.mybatis.model.Blog; ?? import com.tiantian.mybatis.service.BlogService; ?? ??? @Service
??? publicclass BlogServiceImpl implements BlogService { ???
??? private BlogMapper blogMapper; ???
??? publicvoid deleteBlog(int id) { ??? blogMapper.deleteBlog(id); ??? } ???
??? public Blog find(int id) {
??? returnblogMapper.selectBlog(id); ??? } ???
??? public List
??? returnblogMapper.selectAll(); ??? } ???
??? publicvoid insertBlog(Blog blog) { ??? blogMapper.insertBlog(blog); ??? } ???
??? publicvoid updateBlog(Blog blog) { ??? blogMapper.updateBlog(blog); ??? } ???
??? public BlogMapper getBlogMapper() { ??? returnblogMapper; ??? } ???
??? @Resource
??? publicvoid setBlogMapper(BlogMapper blogMapper) { ??? this.blogMapper = blogMapper; ??? } ??? ??? }
MapperScannerConfigurer
利用上面的方法进行整合的时候,我们有一个Mapper就需要定义一个对应的MapperFactoryBean,当我们的Mapper比较少的时候,这样做也还可以,但是当我们的Mapper相当多时我们再这样定义一个个Mapper对应的MapperFactoryBean就显得速度比较慢了。为此Mybatis-Spring为我们提供了一个叫做MapperScannerConfigurer的类,通过这个类Mybatis-Spring会自动为我们注册Mapper对应的MapperFactoryBean对象。
如果我们需要使用MapperScannerConfigurer来帮我们自动扫描和注册Mapper接口的话我们需要在Spring的applicationContext配置文件中定义一个MapperScannerConfigurer对应的bean。对于MapperScannerConfigurer而言有一个属性是我们必须指定的,那就是basePackage。basePackage是用来指定Mapper接口文件所在的基包的,在这个基包或其所有子包下面的Mapper接口都将被搜索到。多个基包之间可以使用逗号或者分号进行分隔。最简单的MapperScannerConfigurer定义就是只指定一个basePackage属性,如:
Xml代码
???
这样MapperScannerConfigurer就会扫描指定基包下面的所有接口,并把它们注册为一个个
MapperFactoryBean对象。当使用MapperScannerConfigurer加basePackage属性的时候,我们上面例子的applicationContext配置文件将变为这样:
Xml代码
???
??? ??? xsi:schemaLocation=\ ??? http://www.springframework.org/schema/beans/spring-beans-3.0.xsd ??? http://www.springframework.org/schema/context ??? http://www.springframework.org/schema/context/spring-context-3.0.xsd ??? http://www.springframework.org/schema/mvc ??? http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd\> ??? ??? class=\ ??? destroy-method=\> ??? ??? ??? class=\> ??? value=\ /> ??? ???