以下を含むクラスを持つコアモジュールがあります。
@Autowired
private BaseDao dao;
BaseDao インターフェイスのいくつかの実装:
class JdbcBaseDaoImpl implements BaseDao {...}
class HibernateBaseDaoImpl implements BaseDao {...}
そして、コアモジュールからそのクラスを使用するモジュールはほとんどありません(mavenを使用)。JdbcBaseDaoImpl
しかし、最初のモジュールでは、コアモジュールのそのフィールドで実装を使用し、2 番目のモジュールでは実装を使用したいと考えていHibernateBaseDaoImpl
ます。
どうやってするか?つまり、コアモジュールでクラスを使用する方法
@Autowired
@Qualifier("jdbcBaseDaoImpl")
private BaseDao dao;
最初のモジュールで
@Autowired
@Qualifier("hibernateBaseDaoImpl")
private BaseDao dao;
2番目のモジュールで?