mapstruct mapper 和mybatis mapper 冲突扫描不上
时间: 2023-08-03 09:08:47 浏览: 503
spring和mybatis整合(mapper代理自动扫描方式实现)
如果同时使用 MapStruct 和 MyBatis,可能会遇到 Mapper 扫描冲突的问题。这是因为两者都使用了 `@Mapper` 注解,并且默认的 Mapper 扫描路径也是相同的。
解决这个问题的方法是,为 MapStruct 的 Mapper 和 MyBatis 的 Mapper 指定不同的扫描路径。可以在启动类上使用 `@MapperScan` 注解,分别指定 MapStruct 和 MyBatis 的 Mapper 所在的包路径,例如:
```
@MapperScan(basePackages = "com.example.mapstruct.mapper", annotationClass = Mapper.class)
@org.mybatis.spring.annotation.MapperScan(basePackages = "com.example.mybatis.mapper", annotationClass = Mapper.class)
@SpringBootApplication
public class Application {
// ...
}
```
上面的代码中,`@MapperScan` 注解中的 `basePackages` 属性分别指定了 MapStruct 和 MyBatis 的 Mapper 所在的包路径,`annotationClass` 属性指定了 Mapper 接口上所使用的注解类型。
这样就可以避免 Mapper 扫描冲突的问题了。
阅读全文