在通过MapStruct使用“ jsr330” componentModel生成映射器实现时,micronaut在尝试注入那些时会在运行时抛出NoSuchBeanException。
一种解决方法是使用将提供映射器对象的提供程序,但是生成的代码应该起作用。
映射器定义:
.json
控制器:
</div>
<div class="startbutton">
<img anima-src="./img/iphone---during-chat-btn 1@2x.png" class="btn-view" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="/>
<div class="start">
START
</div>
pom.xml摘录:
@Mapper(componentModel = "jsr330")
public interface FooBarMapper {
Foo toFoo(Bar bar);
}
在控制器上调用该方法时,我希望Micronaut找到Mapstruct生成的类(用@Singleton注释),但是结果是
消息:不存在[com.example.FooBarMapper]类型的bean。确保将该类声明为Bean,并且如果您使用Java或Kotlin,请确保已启用注释处理。 采取的路径:new SomeController([FooBarMapper mapper]) io.micronaut.context.exceptions.DependencyInjectionException:无法为类com.example.SomeController
的参数[mapper]注入值