我正在开发一个 Spring 3.1 MVC 应用程序,对于我的一个场景,我必须编写一个 DAO 的两个实现。我想知道如何根据另一个对象的属性在服务层中自动装配它。
例如,
class Vehicle {
private name;
private type;
..
..
..
}
@Service
class VehicleServiceImpl implements VehicleService {
// There are two implementations to this DAO
// if Vehicle.type == "CAR", inject CarDAO
// if Vehicle.type == "TRAIN", inject TrainDAO
@Autowired
private VehicleDAO vehicleDAO ;
}
@Repository
class CarDAO implements VehicleDAO {
}
@Repository
class TrainDAO implements VehicleDAO {
}
如果我的车辆是汽车,我需要自动连接 CarDAO,如果是火车,我需要自动连接 TrainDAO
在 spring 3.1 中实现这一点的最佳方法是什么。
我希望使用上下文属性占位符或 @Qualifier 注释,但这两者都仅限于基于某些属性的查找。我不确定如何根据另一个对象的属性在运行时执行此操作。