我有一個項目,我有一個接口,一個實現相同接口的Abstract類,然後是一組實現此接口並擴展Abstract Class的具體類。Spring Autowiring不適用於抽象類
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
pubic void write(){ // implementation.....}
}
Spring文件具有包的組件掃描。
<context:annotation-config>
<context:component-scan base-package="com.xyz" />
我使用一個工廠來獲得TypeAInvoice
發票 現在呼籲invoice.process()
的實例前往write.write()
時得到了NPE我不知道我是什麼在這裏失蹤。我試圖看到組件掃描和範圍,並且在概念上找不到任何錯誤。
從'AbstractInvoice'中刪除'@ component'註釋並嘗試。 – xyz
向我們展示如何獲得TypeAInvoice的實例。 –