gpt4 book ai didi

java - 如何在Spring Boot中使用抽象类?

转载 作者:行者123 更新时间:2023-12-02 01:45:30 25 4
gpt4 key购买 nike

@Component
public abstract class AbstractProcessTask implements Task {

@Resource
protected WorkOrderEventService workOrderEventService;
@Resource
protected NodeService nodeService;
@Resource
protected ConfigReader configReader;

protected void updateStatus(WorkOrderEvent workOrderEvent, String status, String description) {
workOrderEvent.setStatus(status);
workOrderEvent.setComments(description);
workOrderEventService.saveWorkOrderEvent(workOrderEvent);
}
}

我写了一个抽象类来使用,但是不知道怎么用。在旧的spring版本中,我们可以在xml中编写abstract="true"。例如:

<bean id="BaseEventAction" class="com.sinosig.evaluation.fcff.web.event.BasicEventAction"
abstract="true" parent="BaseAction">
<property name="rowFactory" ref="FcffCacheAdapter" />
<property name="caculate" ref="CaculateService" />
<property name="diffusion" ref="DeffusionService" />
</bean>

我该怎么办?

最佳答案

在抽象类上使用@Component不会帮助Spring从中创建bean(当然,你知道,你不能从抽象类实例化对象)。在具体类上使用 @Component 注释。

@Component
public class MyProcessTask extends AbstractProcessTask {
...
}

其余的都还好。如果spring在扫描路径中找到具体类,则会自动创建关联的bean。

不要与属性“abstract=true”混淆

当您在 bean 声明中提及属性 abstract=true 时,您只是抽象了该 bean。 Spring 中的抽象 bean 与抽象类有些不同。事实上,Spring 中的抽象 bean 甚至不必映射到任何类。

有关 What is meant by abstract=“true” in spring? 的更多信息,请参阅这个很好的答案。

关于java - 如何在Spring Boot中使用抽象类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53735448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com