优化spring boot自动配置,增加manager初始化方法
This commit is contained in:
@@ -6,11 +6,14 @@ import com.lanyuanxiaoyao.flowable.core.repository.FlowableRepository;
|
||||
import com.lanyuanxiaoyao.flowable.jpa.repository.FlowableHistoryRepository;
|
||||
import com.lanyuanxiaoyao.flowable.jpa.repository.FlowableInstanceRepository;
|
||||
import com.lanyuanxiaoyao.flowable.jpa.repository.FlowableNodeRepository;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import java.util.Map;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
||||
|
||||
/**
|
||||
* 自动配置
|
||||
@@ -19,9 +22,12 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @version 20250103
|
||||
*/
|
||||
@Configuration
|
||||
@EnableJpaRepositories("com.lanyuanxiaoyao.flowable.jpa.repository")
|
||||
@EnableConfigurationProperties(SpringFlowableConfiguration.class)
|
||||
public class SpringFlowableAutoConfiguration {
|
||||
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(FlowableRepository.class)
|
||||
public FlowableRepository flowableRepository(
|
||||
FlowableNodeRepository flowableNodeRepository,
|
||||
FlowableInstanceRepository flowableInstanceRepository,
|
||||
@@ -31,11 +37,20 @@ public class SpringFlowableAutoConfiguration {
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ConditionalOnBean(FlowableRepository.class)
|
||||
@ConditionalOnMissingBean(FlowableManager.class)
|
||||
public FlowableManager flowableManager(
|
||||
@Qualifier("springFlowableConfiguration") FlowableConfiguration configuration,
|
||||
FlowableConfiguration configuration,
|
||||
FlowableRepository repository,
|
||||
ApplicationContext applicationContext
|
||||
) {
|
||||
return new SpringFlowableManager(configuration, repository, applicationContext);
|
||||
FlowableManager manager = new SpringFlowableManager(configuration, repository, applicationContext);
|
||||
|
||||
Map<String, SpringFlowableManagerInitializer> initializerMap = applicationContext.getBeansOfType(SpringFlowableManagerInitializer.class);
|
||||
for (SpringFlowableManagerInitializer initializer : initializerMap.values()) {
|
||||
manager = initializer.initial(manager);
|
||||
}
|
||||
|
||||
return manager;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.lanyuanxiaoyao.flowable.jpa;
|
||||
import com.lanyuanxiaoyao.flowable.core.manager.FlowableConfiguration;
|
||||
import lombok.ToString;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* 配置类
|
||||
@@ -12,7 +11,6 @@ import org.springframework.context.annotation.Configuration;
|
||||
* @version 20250103
|
||||
*/
|
||||
@ToString(callSuper = true)
|
||||
@Configuration
|
||||
@ConfigurationProperties("flowable")
|
||||
public class SpringFlowableConfiguration extends FlowableConfiguration {
|
||||
}
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.lanyuanxiaoyao.flowable.jpa;
|
||||
|
||||
import com.lanyuanxiaoyao.flowable.core.manager.FlowableManager;
|
||||
|
||||
/**
|
||||
* @author lanyuanxiaoyao
|
||||
* @version 20250106
|
||||
*/
|
||||
public interface SpringFlowableManagerInitializer {
|
||||
FlowableManager initial(FlowableManager manager);
|
||||
}
|
||||
Reference in New Issue
Block a user