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

View File

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

View File

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