1
0

优化Spring环境下的类型

This commit is contained in:
2025-01-07 14:22:01 +08:00
parent 53c4be6e3e
commit b56555923a
3 changed files with 17 additions and 13 deletions

View File

@@ -1,6 +1,5 @@
package com.lanyuanxiaoyao.flowable.jpa;
import com.lanyuanxiaoyao.flowable.core.manager.FlowableConfiguration;
import com.lanyuanxiaoyao.flowable.core.manager.FlowableManager;
import com.lanyuanxiaoyao.flowable.core.repository.FlowableRepository;
import com.lanyuanxiaoyao.flowable.jpa.repository.FlowableHistoryRepository;
@@ -12,6 +11,7 @@ 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.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@@ -22,13 +22,14 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
* @version 20250103
*/
@Configuration
@ComponentScan
@EnableJpaRepositories("com.lanyuanxiaoyao.flowable.jpa.repository")
@EnableConfigurationProperties(SpringFlowableConfiguration.class)
public class SpringFlowableAutoConfiguration {
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
@Bean
@ConditionalOnMissingBean(FlowableRepository.class)
public FlowableRepository flowableRepository(
public SpringFlowableRepository flowableRepository(
FlowableNodeRepository flowableNodeRepository,
FlowableInstanceRepository flowableInstanceRepository,
FlowableHistoryRepository flowableHistoryRepository
@@ -39,12 +40,12 @@ public class SpringFlowableAutoConfiguration {
@Bean
@ConditionalOnBean(FlowableRepository.class)
@ConditionalOnMissingBean(FlowableManager.class)
public FlowableManager flowableManager(
FlowableConfiguration configuration,
FlowableRepository repository,
public SpringFlowableManager flowableManager(
SpringFlowableConfiguration configuration,
SpringFlowableRepository repository,
ApplicationContext applicationContext
) {
FlowableManager manager = new SpringFlowableManager(configuration, repository, applicationContext);
SpringFlowableManager manager = new SpringFlowableManager(configuration, repository, applicationContext);
Map<String, SpringFlowableManagerInitializer> initializerMap = applicationContext.getBeansOfType(SpringFlowableManagerInitializer.class);
for (SpringFlowableManagerInitializer initializer : initializerMap.values()) {

View File

@@ -1,12 +1,15 @@
package com.lanyuanxiaoyao.flowable.jpa;
import com.lanyuanxiaoyao.flowable.core.manager.FlowableConfiguration;
import com.lanyuanxiaoyao.flowable.core.manager.FlowableManager;
import com.lanyuanxiaoyao.flowable.core.repository.FlowableRepository;
import com.lanyuanxiaoyao.flowable.jpa.entity.FlowableHistory;
import com.lanyuanxiaoyao.flowable.jpa.entity.FlowableInstance;
import com.lanyuanxiaoyao.flowable.jpa.entity.FlowableNode;
import java.util.List;
import java.util.UUID;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.ApplicationContext;
import org.springframework.data.jpa.domain.Specification;
/**
* @author lanyuanxiaoyao
@@ -14,11 +17,13 @@ import org.springframework.context.ApplicationContext;
*/
@Slf4j
public class SpringFlowableManager extends FlowableManager {
private final SpringFlowableRepository repository;
private final ApplicationContext applicationContext;
public SpringFlowableManager(FlowableConfiguration configuration, FlowableRepository repository, ApplicationContext applicationContext) {
public SpringFlowableManager(SpringFlowableConfiguration configuration, SpringFlowableRepository repository, ApplicationContext applicationContext) {
super(configuration, repository);
log.info("Configuration: {}", configuration);
this.repository = repository;
this.applicationContext = applicationContext;
}

View File

@@ -1,11 +1,9 @@
package com.lanyuanxiaoyao.flowable.jpa;
import com.lanyuanxiaoyao.flowable.core.manager.FlowableManager;
/**
* @author lanyuanxiaoyao
* @version 20250106
*/
public interface SpringFlowableManagerInitializer {
FlowableManager initial(FlowableManager manager);
SpringFlowableManager initial(SpringFlowableManager manager);
}