我是新的Spring Boot 和豆的概念。我的类如下:
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的创建感到困惑。
如果能得到你们的支持就太好了。谢谢
2条答案
按热度按时间kq4fsx7k1#
PersonAuditService
是一个可以注入到AuditService<Person> auditService
中的类。AuditBaseService
是一个抽象类,你不能做new AuditBaseService(...)
,你必须继承AuditBaseService。Spring不能创建抽象类的示例。
o3imoua42#
我想我找到了我的答案。但是我仍然不确定这是否是一个创建bean的好方法,以及它是如何工作的。如果有人能给我解释一下就太好了。
我所做的只是将
personAuditService
定义为配置文件中的一个方法,而不是创建额外的类PersonAuditService
,这对我来说也是一样的。字符串