Java Spring@Resource注入抽象类getter返回null
我有一个pb和一个我运行的测试用例。我通过接口设置了一个对象。在接口和类之间是一个抽象类,该对象的getter在其中。当我打电话给目标的获得者。它返回null……?我想这是代理obj的问题,但我不知道代理obj是如何工作的Java Spring@Resource注入抽象类getter返回null,java,spring,dependency-injection,proxy-classes,Java,Spring,Dependency Injection,Proxy Classes,我有一个pb和一个我运行的测试用例。我通过接口设置了一个对象。在接口和类之间是一个抽象类,该对象的getter在其中。当我打电话给目标的获得者。它返回null……?我想这是代理obj的问题,但我不知道代理obj是如何工作的 public interface RequestHandler{ public void setRequest(ImporterRequest request);} public abstract class AbstractRequestH
public interface RequestHandler{
public void setRequest(ImporterRequest request);}
public abstract class AbstractRequestHandler implements RequestHandler{
private ImporterRequest request;
public ImporterRequest getRequest() {
return request;
}
@Override
public void setRequest(ImporterRequest request) {
this.request = request;
}
@Component("WBRequestHandler")
@Scope(value= "prototype", proxyMode = ScopedProxyMode.TARGET_CLASS)
public class WBRequestHandler extends AbstractRequestHandler implements RequestHandler{
// here only implemented methods from the AbstrcCllass for read/write csv
@Override
public List<Object> getData(ExportRequest request1) {...}
@Override
public CellProcessor[] createExportCellProcessor(ExportRequest request1) {...}
@Override
protected void parseLines(CsvPreference preferences, StringReader reader,
LngDTO LngDTO, String username) throws IOException {....}
@Override
protected CellProcessor[] createProcessors(ImporterRequest request1) {.....}
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/META-INF/spring-config.xml" })
public class Test{
@Resource
private RequestHandler WBRequestHandler;
@Resource
private ImporterFactory importerFactoryImpl;
@Test
@Transactional
public void CSVReadTest() {
//the importerRequest obj is a simple one - non-annotated
ImporterRequest ir = new ImporterRequest();
ir.setImportTyp(RequestTyp.Artikel);
//this instantiation works, i made a test case for a export file with the same line
WBRequestHandler = importerFactoryImpl.getHandler(ir);
WBRequestHandler.setRequest(ir);
//in the test the req is null,
ImporterRequest req = ((AbstractRequestHandler) WBRequestHandler).getRequest();
}
}
可能尝试将WBRequestHandler重命名为小写,而不是强制转换itthanks…它不起作用公共类WBRequestHandler扩展AbstractRequestHandler实现RequestHandler{一些其他代码}。你能给我看一些其他的代码吗?在具体的类中,我只有4个方法来实现抽象类中声明的那些方法……我认为它们不会影响这个空问题。