看看下面的一般抽象類:@Configurable不工作的子類
@Configurable
public abstract class TestEntityRoot {
public abstract String print();
}
而且一個子類:
@Configurable
public class TestEntity extends TestEntityRoot{
private TestEntityService testEntityService;
@Autowired
public void setTestEntityService(TestEntityService testEntityService) {
this.testEntityService = testEntityService;
}
@Override
public String print() {
return testEntityService.print();
}
}
當呼叫控制器:
@RestController
public class TestEntityController {
@GetMapping(name = "/test")
public String print() {
TestEntity entity = new TestEntity();
return entity.print();
}
}
一切就OK了。但如果這樣的電話:
@RestController
public class TestEntityController {
@GetMapping(name = "/test")
public String print() {
TestEntityRoot entity = new TestEntity();
return entity.print();
}
}
我得到空指針。第二個例子有可能工作嗎?
您無法在bean上調用'new'來創建Spring Bean。 Spring需要處理它,以注入bean。另外我還看到另一個問題 - 不要將服務注入實體 - 這是錯誤的。實體不應該持有任何邏輯。 – Gondy