私は、インターフェイス、同じインターフェイスを実装する抽象クラス、およびこのインターフェイスを実装して抽象クラスを拡張する一連の具体的なクラスを持つプロジェクトを持っています。
public interface Invoice
{
void process();
}
@component
public abstract class AbstractInvoice(){
@Resource
protected Writer writer;
protected validateInvoice(){
//some implementation
}
}
@Component
public Class TypeAInvoice() extends AbstractInvoice implements Invoice{
@Override
public void process(){
//... some code
writer.write();
}
}
public Interface Writer(){
public void write();
}
@Component
public class CDWriter implements Writer{
@Override
public void write() { /* implementation.....*/}
}
Spring ファイルには、パッケージのコンポーネント スキャンがあります。
<context:annotation-config>
<context:component-scan base-package="com.xyz" />
TypeAInvoice
インボイスのインスタンスをinvoice.process()
取得するためにファクトリを使用しています。write.write()
ここで何が欠けているのかわかりません。コンポーネントのスキャンとスコープを確認しようとしましたが、概念的に間違っているものは見つかりませんでした。