SpringBoot 包扫描

我们两清 提交于 2020-05-03 18:29:59

通过@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可以同时使用。

如果都是扫描的相同路径时,对于同一个接口,可能就会出现识别错误。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!