通过@SpringBootApplication注解启动时只会扫描当前包及子包下的组件。其他包文件不会扫描到。
通过 @MapperScan注解可以扫描指定包。
@MapperScan("com.yxl.mybatisplus02")
也可以制定扫描多个包
@MapperScan({"com.yxl.mybatisplus01",""com.yxl.mybatisplus02""})
使用通配符
@MapperScan("com.yxl.mybatisplus02**")
**匹配任意class文件和包,而*只能匹配包,
如果让springBooT扫描扫Mybatis自定义的Mapper接口文件。
1.在mapper接口上增加@Mapper注解
@Mapper
public interface UserMapper extends BaseMapper<User>{
}
2.在启动类上加@MapperScan注解
@MapperScan注解的好处是只需要在启动类上配置扫描包路径或者规则。然后会统一进行扫描。 @Mapper注解需要在每个Mapper接口上加注解
@SpringBootApplication
@MapperScan("com.yxl.mapper")
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class,args);
}
}
扫描注解
@Mapper
在接口上添加了@Mapper,在编译之后就会生成相应的接口实现类。 不过需要在每个接口上面进行配置,为了简化开发,就有了 @MapperScan。
@MapperScan
指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类。
@ComponentScan:
会自动扫描包路径下面的所有@Controller、@Service、@Repository、@Component 的类,并把符合扫描规则的类装配到spring容器中。
@MapperScan和@ComponentScan可以同时使用。
如果都是扫描的相同路径时,对于同一个接口,可能就会出现识别错误。
来源:oschina
链接:https://my.oschina.net/u/4157150/blog/4263197