我对 Spring Boot 和 Bean 概念很陌生。我的课程如下:
public class PersonController {
private final AuditService<Person> auditService;
@GetMapping("/{id}/revisions")
public void getHistory(
@PathVariable String id) {
log.info("Get Audit history for entry with id: {}", id);
List<AuditEntry<Person>> auditEntryList = auditService.getEntityRevisions(id);
log.debug("Profile Audit history for id: {} is : {}", id, auditEntryList);
}
}
@RequiredArgsConstructor
public abstract class AuditBaseService<E> implements AuditService<E> { ... }
我在定义auditService的控制器类中遇到错误,说:“无法自动装配。找不到'AuditService'类型的bean”`。然后 我可以通过添加一个可以扩展 AuditBaseService 的新类来解决此问题,如下所示:
@Service
public class PersonAuditService extends AuditBaseService<Person> {
public PersonAuditService(AuditReader pAudit) {
super(pAudit);
}
}
问题就可以解决。但这不是一个好的解决方案,因为新类(
PersonAuditService
)除了调用超类之外什么也不做。
我想在项目的配置文件中添加创建bean。但我做不到,因为我仍然对 bean 的创建感到困惑。
很高兴得到您的支持。谢谢
PersonAuditService
是一个可以注入到AuditService<Person> auditService
中的类。
AuditBaseService
是一个抽象类,你不能做new AuditBaseService(...)
,你必须子类化AuditBaseService。
Spring 无法创建抽象类的实例。