gpt4 book ai didi

java - Flowable服务任务中的spring bean注入(inject)问题

转载 作者:行者123 更新时间:2023-12-02 16:32:40 37 4
gpt4 key购买 nike

我有一个关于Flowable的服务任务中的spring bean注入(inject)的问题,为什么只有这种带有static修饰符的注入(inject)有效,它的逻辑是什么?

我必须在 Flowable java 服务任务中注入(inject)一个 spring bean,我测试了一些不同类型的注入(inject)字段、构造函数和 setter 注入(inject),最终带有静态修饰符的 setter 注入(inject)对我来说是这样的:

public class GetCurrentUserDlg implements JavaDelegate {

private static PersonService personService;

@Autowired
public void setPersonService(PersonService personService) {
this.personService = personService;
}

@Override
public void execute(DelegateExecution execution) {
personService.getCurrentUser();
}
}

最佳答案

虽然我无法回答您的问题,但以下内容对我来说很好:

public class SomeDelegate implements JavaDelegate {

@Autowired
private SomeBean bean;

@Override
public void execute(DelegateExecution execution) {
System.out.println(this.bean);
}
}

然后通过flowable:class="packages.SomeDelegate"在流程中使用该类

但是,请注意,您可能会在 SomeBean bean 中遇到 Autowiring 依赖项的问题。使用 flowable:class 属性时不会注入(inject)此依赖项。为了让它工作,你必须使 SomeDelegate 成为一个实际的 bean 本身(例如通过 @Service)并通过 flowable:delegateExpression 在你的流程定义中使用它="${someDelegate}"

例子:

@Service("someDelegate")
public class SomeDelegate implements JavaDelegate {
...

<serviceTask id="doSomething" name="Do Something" flowable:delegateExpression="${someDelegate}"/>

关于java - Flowable服务任务中的spring bean注入(inject)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63245025/

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