【发布时间】:2019-08-19 08:17:25
【问题描述】:
假设我有MotoDao 和CarDao,它们都是接口VehicleDao 的实现。
如何使用 micronuat 将两者都注入到一个类中?
我希望像下面这样:
@Inject
public VehicleHandler(@MotoDao VehcileDao motoDao, @CarDao VehicleDao carDao)
【问题讨论】:
标签: micronaut
假设我有MotoDao 和CarDao,它们都是接口VehicleDao 的实现。
如何使用 micronuat 将两者都注入到一个类中?
我希望像下面这样:
@Inject
public VehicleHandler(@MotoDao VehcileDao motoDao, @CarDao VehicleDao carDao)
【问题讨论】:
标签: micronaut
您可以使用@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
【讨论】: