私は Spring 3.1 MVC アプリケーションに取り組んでおり、私のシナリオの 1 つで、DAO の 2 つの実装を作成する必要がありました。別のオブジェクトの属性に基づいて、サービス レイヤーでこれを自動配線する方法を知りたいです。
例えば、
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 アノテーションのいずれかを使用することを望んでいましたが、これらはどちらも、いくつかのプロパティに基づくルックアップに制限されています。別のオブジェクトのプロパティに基づいて実行時にこれを行う方法がわかりません。