我有一个项目,我有一个接口,一个实现相同接口的抽象类,然后是一组实现这个接口并扩展抽象类的具体类。
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()
获取 NPEwrite.write()
我不确定我在这里错过了什么。我试图查看组件扫描和范围,但在概念上找不到任何错误。