紛らわしい問題を見つけたと思います。パッケージ「cao」の下に2つのクラスがあります。1つは次のとおりです。
@Repository
public class MovieFinder {
}
もう1つは次のとおりです。
public class SimpleMovieLister {
@SuppressWarnings("SpringJavaAutowiringInspection")
@Autowired
private MovieFinder movieFinder;
public MovieFinder getMovieFinder() {
return movieFinder;
}
public void setMovieFinder(MovieFinder movieFinder) {
this.movieFinder = movieFinder;
}
}
アプリケーションの xml ファイルでは、次のように定義します。
<bean class="cao.SimpleMovieLister"/>
<context:component-scan base-package="cao"/>
<bean id="1" class="cao.MovieFinder"/>
その後、プログラムは正常に実行できます。しかし、私を混乱させたのは、今では MovieFinder 型のインスタンスが 2 つあるということです。なぜ例外をスローしないのでしょうか?
@Repository を @Repository(value="2") に変更すると、予想される例外がスローされます。うわー、助けてください。どうもありがとう。