优化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.FlowableHistoryRepository;
|
||||||
import com.lanyuanxiaoyao.flowable.jpa.repository.FlowableInstanceRepository;
|
import com.lanyuanxiaoyao.flowable.jpa.repository.FlowableInstanceRepository;
|
||||||
import com.lanyuanxiaoyao.flowable.jpa.repository.FlowableNodeRepository;
|
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.boot.context.properties.EnableConfigurationProperties;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
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
|
* @version 20250103
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
|
@EnableJpaRepositories("com.lanyuanxiaoyao.flowable.jpa.repository")
|
||||||
@EnableConfigurationProperties(SpringFlowableConfiguration.class)
|
@EnableConfigurationProperties(SpringFlowableConfiguration.class)
|
||||||
public class SpringFlowableAutoConfiguration {
|
public class SpringFlowableAutoConfiguration {
|
||||||
|
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
|
||||||
@Bean
|
@Bean
|
||||||
|
@ConditionalOnMissingBean(FlowableRepository.class)
|
||||||
public FlowableRepository flowableRepository(
|
public FlowableRepository flowableRepository(
|
||||||
FlowableNodeRepository flowableNodeRepository,
|
FlowableNodeRepository flowableNodeRepository,
|
||||||
FlowableInstanceRepository flowableInstanceRepository,
|
FlowableInstanceRepository flowableInstanceRepository,
|
||||||
@@ -31,11 +37,20 @@ public class SpringFlowableAutoConfiguration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
@ConditionalOnBean(FlowableRepository.class)
|
||||||
|
@ConditionalOnMissingBean(FlowableManager.class)
|
||||||
public FlowableManager flowableManager(
|
public FlowableManager flowableManager(
|
||||||
@Qualifier("springFlowableConfiguration") FlowableConfiguration configuration,
|
FlowableConfiguration configuration,
|
||||||
FlowableRepository repository,
|
FlowableRepository repository,
|
||||||
ApplicationContext applicationContext
|
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 com.lanyuanxiaoyao.flowable.core.manager.FlowableConfiguration;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
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
|
* @version 20250103
|
||||||
*/
|
*/
|
||||||
@ToString(callSuper = true)
|
@ToString(callSuper = true)
|
||||||
@Configuration
|
|
||||||
@ConfigurationProperties("flowable")
|
@ConfigurationProperties("flowable")
|
||||||
public class SpringFlowableConfiguration extends FlowableConfiguration {
|
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