Mas*_*izi 2 java spring bpmn flowable
我有一个关于Flowable服务任务中spring bean注入的问题,为什么只有这种带有静态修饰符的注入有效,它的逻辑是什么?
我必须在 Flowable java 服务任务中注入一个 spring bean,并且我测试了一些不同类型的注入字段、构造函数和 setter 注入,最终带有静态修饰符的 setter 注入对我来说是这样的:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
虽然我无法回答你的问题,但以下对我来说很好:
public class SomeDelegate implements JavaDelegate {
@Autowired
private SomeBean bean;
@Override
public void execute(DelegateExecution execution) {
System.out.println(this.bean);
}
}
Run Code Online (Sandbox Code Playgroud)
然后在流程中使用该类 flowable:class="packages.SomeDelegate"
但是,请注意,您可能会遇到SomeBeanbean 中自动装配依赖项的问题。使用该flowable:class属性时不会注入此依赖项。为了使其工作,您必须自己制作SomeDelegate一个实际的bean(例如 via @Service)并通过在您的流程定义中使用它flowable:delegateExpression="${someDelegate}"
例子:
@Service("someDelegate")
public class SomeDelegate implements JavaDelegate {
...
Run Code Online (Sandbox Code Playgroud)
和
<serviceTask id="doSomething" name="Do Something" flowable:delegateExpression="${someDelegate}"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
781 次 |
| 最近记录: |