在mapstruct 使用过程中,两个mapper,请问我如何根据类名获取到对应mapper的实例呢
时间: 2023-08-18 18:09:55 浏览: 230
用java程序生成mybatis的mapper.xml和mapper.java文件
在 MapStruct 中,每个 Mapper 都是由 MapStruct 在编译时生成的。因此,您不能像直接使用类一样实例化 Mapper。但是,您可以使用 Spring 或其他依赖注入框架来管理 Mapper。
如果您正在使用 Spring,则可以使用 @Autowired 或 @Inject 注释将 Mapper 注入到您的代码中。例如:
```java
@Autowired
private UserMapper userMapper;
```
如果您不使用 Spring 或其他依赖注入框架,则可以手动实例化 Mapper。要手动实例化 Mapper,请使用 MapStruct 提供的 MapperFactory。例如:
```java
MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
UserMapper userMapper = mapperFactory.getMapper(UserMapper.class);
```
在上面的示例中,我们首先创建了一个 MapperFactory,然后使用它来获取 UserMapper 的实例。
请注意,手动实例化 Mapper 可能会导致一些问题,因为 MapStruct 生成的 Mapper 类可能会有依赖关系,并且需要按照正确的顺序来实例化。因此,我建议您使用依赖注入框架来管理 Mapper。
阅读全文