可以说我有MotoDao
和CarDao
,两者都是接口VehicleDao
的实现。
如何使用微坚果将两者同时注入一个班级?
我希望如下所示:
@Inject
public VehicleHandler(@MotoDao VehcileDao motoDao, @CarDao VehicleDao carDao)
答案 0 :(得分:2)
您可以使用@Named
注释通过前缀( moto , car )进行限定,如下所示:
@Inject
public VehicleHandler(@Named('moto') VehcileDao motoDao, @Named('car') VehicleDao carDao)
或者您可以创建自己的限定词注释:
@Qualifier
@Retention(RUNTIME)
@interface Car {
}
@Qualifier
@Retention(RUNTIME)
@interface Moto {
}
通过它们注释您的DAO类:
@Moto
public class MotoDao implements VehicleDao {
...
}
...并像这样使用它:
@Inject
public VehicleHandler(@Moto VehcileDao motoDao, @Car VehicleDao carDao)
您可以在以下官方Micronaut文档中找到更多数据:https://docs.micronaut.io/latest/guide/ioc.html