springboot 配置@MapperScan不扫哪些包
时间: 2024-08-14 11:07:56 浏览: 217
springboot中@Async默认线程池导致OOM问题
5星 · 资源好评率100%
`@MapperScan`注解在Spring Boot中用于扫描并自动装配JPA的Mapper接口。如果你想指定哪些包不应该被扫描,你可以通过添加`excludeFilters`属性来排除特定的包。这个属性接受一个`Filter`数组,每个`Filter`通常是一个`PatternBasedIncludeFilter`或`RegexBasedIncludeFilter`实例,它们可以根据包名模式进行匹配。
例如:
```java
@Configuration
@MapperScan("com.example.myapp.mapper", excludeFilters = [
@IncludeFilter(type = FilterType.CUSTOM, pattern = "com.example.exclude.mapper"),
@IncludeFilter(type = FilterType.ANNOTATION, value = MyCustomAnnotation.class)
])
public class MapperConfig {
//...
}
```
在这个例子中,`com.example.exclude.mapper`包下的Mapper接口将不会被自动扫描。`MyCustomAnnotation`也可以用来标记不需要扫描的类。
如果你不想扫描整个模块,可以提供具体的包路径列表,比如只扫描某个子模块的Mapper:
```java
@MapperScan({"com.example.myapp.module1.mapper", "!com.example.myapp.module2.mapper"})
```
这里的感叹号`!`表示排除该包下的所有mapper。
阅读全文