構成:
@Configuration
public class CoreConfig {
@Bean
public StatusService statusService(StatusPersistenceService statusPersistenceService) {
return new StatusEventHandler(statusPersistenceService);
}
}
クラスSpringは、デフォルトのコンストラクターがないと不平を言っています
@Configuration
public class StatusEventHandler implements StatusService {
private final StatusPersistenceService statusPersistenceService;
@Autowired
public StatusEventHandler(final StatusPersistenceService statusPersistenceService) {
this.statusPersistenceService = statusPersistenceService;
}
}
この Bean が注入されるコントローラー:
@Controller
@RequestMapping("/showStatus")
public class ShowStatusController {
@Autowired
private StatusService statusService;
}
これはコンパイルされてテストに合格しますが、アプリ サーバーに公開すると、次のエラーが発生します。Spring がデフォルトの引数のないコンストラクターがあるべきだと考えるのはなぜですか?
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'statusEventHandler'
...
No default constructor found;