【发布时间】:2019-01-30 00:23:03
【问题描述】:
Test.java
@Service
public class Test {
public void Testing() {
System.out.println("inside testing");
}
}
这是我的工厂类
@Service
public class ClaimFactory extends BaseClaimFactory {
@Autowired
ClaimProvider claimProvider;
@Override
public ClaimProvider getClaimRequest( String type) throws Exception {
if (type.equals(ClaimProviderEnums.ABC.toString())) {
claimProvider = new ABCIMP();
}
return claimProvider;
}
}
这是我的 ABCIMP.java 类
@Service
public class ABCIMP implements ClaimProvider {
@Autowired
Test test;
public void claimRequest(){
test.testing();
}
}
我是这样打电话的
claimProviders=baseClaimFactory.getClaimRequest();
claimProviders.claimRequest();
我不知道为什么我在test.testing() 线上得到 java.lang.NullPointerException 有人知道为什么会发生这种情况并且当我打电话时它正在工作
aBCIMP.claimRequest()
【问题讨论】:
-
不是
ABCIMPComponent,而不是Service。我也会为你的Test班级问同样的问题。 -
因为它是一个服务层 ABCIMP.java。 ..即使组件不工作
-
是的,当您不让 IOC 容器为您代理对象时,它将不起作用。你不能做
new X()并期望 Spring 为你管理它。 -
当我在 getClaimRequest 中返回
Autowire ABCIMP aBCIMP;并像return aBCIMP一样返回它,然后我在 `claimProviders.claimRequest();` 处得到空指针;`
标签: java spring spring-mvc spring-boot