Skip to content

Commit 7c1f560

Browse files
committed
fix: 移除 BPP,使用 @primary 指定 FileRecorder
1 parent 2d37a2e commit 7c1f560

3 files changed

Lines changed: 11 additions & 50 deletions

File tree

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,16 @@
11
package com.github.cadecode.uniboot.common.plugin.storage.config;
22

3-
import cn.hutool.core.util.ObjUtil;
4-
import com.github.cadecode.uniboot.common.plugin.storage.handler.AbstractStorageHandler;
5-
import lombok.RequiredArgsConstructor;
63
import org.dromara.x.file.storage.spring.EnableFileStorage;
7-
import org.springframework.beans.BeansException;
8-
import org.springframework.beans.factory.config.BeanDefinition;
9-
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
10-
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
11-
import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
12-
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
13-
import org.springframework.context.annotation.Bean;
144
import org.springframework.context.annotation.Configuration;
155

16-
import java.util.Arrays;
17-
import java.util.Optional;
18-
196
/**
207
* x-file-storage 配置类
218
*
229
* @author Cade Li
2310
* @since 2023/10/25
2411
*/
2512
@EnableFileStorage
26-
@RequiredArgsConstructor
2713
@Configuration
2814
public class XFileStorageConfig {
2915

30-
public static final String BEAN_NAME_FILE_RECORDER = "fileRecorder";
31-
32-
@Bean
33-
public FileRecorderBeanDefinitionRegistryPostProcessor fileRecorderBeanDefinitionRegistryPostProcessor() {
34-
return new FileRecorderBeanDefinitionRegistryPostProcessor();
35-
}
36-
37-
/**
38-
* 解决自定义 AbstractStorageHandler 不能替代 x-file-storage 框架默认 FileRecorder
39-
*/
40-
public static class FileRecorderBeanDefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor {
41-
42-
@Override
43-
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
44-
45-
}
46-
47-
@Override
48-
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
49-
String[] handlerBeanNames = beanFactory.getBeanNamesForType(AbstractStorageHandler.class);
50-
// 查找 primary 的,不存在则取第一个
51-
if (ObjUtil.isNotEmpty(handlerBeanNames)) {
52-
Optional<BeanDefinition> primaryBF = Arrays.stream(handlerBeanNames)
53-
.map(beanFactory::getBeanDefinition)
54-
.filter(BeanDefinition::isPrimary)
55-
.findFirst();
56-
BeanDefinition handlerBF;
57-
handlerBF = primaryBF.orElseGet(() -> beanFactory.getBeanDefinition(handlerBeanNames[0]));
58-
if (beanFactory instanceof DefaultListableBeanFactory) {
59-
((DefaultListableBeanFactory) beanFactory).removeBeanDefinition(BEAN_NAME_FILE_RECORDER);
60-
((DefaultListableBeanFactory) beanFactory).registerBeanDefinition(BEAN_NAME_FILE_RECORDER, handlerBF);
61-
}
62-
}
63-
}
64-
}
6516
}
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
package com.github.cadecode.uniboot.common.plugin.storage.handler;
22

3+
import lombok.extern.slf4j.Slf4j;
34
import org.dromara.x.file.storage.core.recorder.FileRecorder;
5+
import org.springframework.beans.factory.InitializingBean;
46

57
/**
68
* 文件存储处理器
79
*
810
* @author Cade Li
911
* @since 2023/10/27
1012
*/
11-
public abstract class AbstractStorageHandler implements FileRecorder {
13+
@Slf4j
14+
public abstract class AbstractStorageHandler implements FileRecorder, InitializingBean {
15+
16+
@Override
17+
public void afterPropertiesSet() throws Exception {
18+
log.info("File storage handler {} is loaded", this.getClass().getName());
19+
}
1220
}

framework/framework_base/src/main/java/com/github/cadecode/uniboot/framework/base/plugin/handler/StorageRecordHandler.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import lombok.RequiredArgsConstructor;
99
import lombok.extern.slf4j.Slf4j;
1010
import org.dromara.x.file.storage.core.FileInfo;
11+
import org.springframework.context.annotation.Primary;
1112
import org.springframework.stereotype.Component;
1213

1314
/**
@@ -18,6 +19,7 @@
1819
*/
1920
@Slf4j
2021
@RequiredArgsConstructor
22+
@Primary
2123
@Component
2224
public class StorageRecordHandler extends AbstractStorageHandler {
2325

0 commit comments

Comments
 (0)