优化 oss bean 构造,可以减少 bean 冲突。

This commit is contained in:
卢春梦 2025-02-13 17:35:42 +08:00
parent 31acc1de3c
commit b94d9f61d2
3 changed files with 16 additions and 23 deletions

View File

@ -19,7 +19,6 @@ import com.aliyun.oss.ClientConfiguration;
import com.aliyun.oss.OSSClient; import com.aliyun.oss.OSSClient;
import com.aliyun.oss.common.auth.CredentialsProvider; import com.aliyun.oss.common.auth.CredentialsProvider;
import com.aliyun.oss.common.auth.DefaultCredentialProvider; import com.aliyun.oss.common.auth.DefaultCredentialProvider;
import lombok.AllArgsConstructor;
import org.springblade.core.oss.AliossTemplate; import org.springblade.core.oss.AliossTemplate;
import org.springblade.core.oss.props.OssProperties; import org.springblade.core.oss.props.OssProperties;
import org.springblade.core.oss.rule.OssRule; import org.springblade.core.oss.rule.OssRule;
@ -36,19 +35,15 @@ import org.springframework.context.annotation.Bean;
* *
* @author Chill * @author Chill
*/ */
@AllArgsConstructor
@AutoConfiguration(after = OssConfiguration.class) @AutoConfiguration(after = OssConfiguration.class)
@EnableConfigurationProperties(OssProperties.class) @EnableConfigurationProperties(OssProperties.class)
@ConditionalOnClass({OSSClient.class}) @ConditionalOnClass({OSSClient.class})
@ConditionalOnProperty(value = "oss.name", havingValue = "alioss") @ConditionalOnProperty(value = "oss.name", havingValue = "alioss")
public class AliossConfiguration { public class AliossConfiguration {
private final OssProperties ossProperties;
private final OssRule ossRule;
@Bean @Bean
@ConditionalOnMissingBean(OSSClient.class) @ConditionalOnMissingBean(OSSClient.class)
public OSSClient ossClient() { public OSSClient ossClient(OssProperties ossProperties) {
// 创建ClientConfigurationClientConfiguration是OSSClient的配置类可配置代理连接超时最大连接数等参数 // 创建ClientConfigurationClientConfiguration是OSSClient的配置类可配置代理连接超时最大连接数等参数
ClientConfiguration conf = new ClientConfiguration(); ClientConfiguration conf = new ClientConfiguration();
// 设置OSSClient允许打开的最大HTTP连接数默认为1024个 // 设置OSSClient允许打开的最大HTTP连接数默认为1024个
@ -70,7 +65,9 @@ public class AliossConfiguration {
@Bean @Bean
@ConditionalOnBean({OSSClient.class}) @ConditionalOnBean({OSSClient.class})
@ConditionalOnMissingBean(AliossTemplate.class) @ConditionalOnMissingBean(AliossTemplate.class)
public AliossTemplate aliossTemplate(OSSClient ossClient) { public AliossTemplate aliossTemplate(OssRule ossRule,
OssProperties ossProperties,
OSSClient ossClient) {
return new AliossTemplate(ossClient, ossProperties, ossRule); return new AliossTemplate(ossClient, ossProperties, ossRule);
} }

View File

@ -16,7 +16,6 @@
package org.springblade.core.oss.config; package org.springblade.core.oss.config;
import io.minio.MinioClient; import io.minio.MinioClient;
import lombok.AllArgsConstructor;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.springblade.core.oss.MinioTemplate; import org.springblade.core.oss.MinioTemplate;
import org.springblade.core.oss.props.OssProperties; import org.springblade.core.oss.props.OssProperties;
@ -34,21 +33,16 @@ import org.springframework.context.annotation.Bean;
* *
* @author Chill * @author Chill
*/ */
@AllArgsConstructor
@AutoConfiguration(after = OssConfiguration.class) @AutoConfiguration(after = OssConfiguration.class)
@ConditionalOnClass({MinioClient.class}) @ConditionalOnClass({MinioClient.class})
@EnableConfigurationProperties(OssProperties.class) @EnableConfigurationProperties(OssProperties.class)
@ConditionalOnProperty(value = "oss.name", havingValue = "minio") @ConditionalOnProperty(value = "oss.name", havingValue = "minio")
public class MinioConfiguration { public class MinioConfiguration {
private final OssProperties ossProperties;
private final OssRule ossRule;
@Bean @Bean
@SneakyThrows @SneakyThrows
@ConditionalOnMissingBean(MinioClient.class) @ConditionalOnMissingBean(MinioClient.class)
public MinioClient minioClient() { public MinioClient minioClient(OssProperties ossProperties) {
return MinioClient.builder() return MinioClient.builder()
.endpoint(ossProperties.getEndpoint()) .endpoint(ossProperties.getEndpoint())
.credentials(ossProperties.getAccessKey(), ossProperties.getSecretKey()) .credentials(ossProperties.getAccessKey(), ossProperties.getSecretKey())
@ -58,7 +52,9 @@ public class MinioConfiguration {
@Bean @Bean
@ConditionalOnBean({MinioClient.class}) @ConditionalOnBean({MinioClient.class})
@ConditionalOnMissingBean(MinioTemplate.class) @ConditionalOnMissingBean(MinioTemplate.class)
public MinioTemplate minioTemplate(MinioClient minioClient) { public MinioTemplate minioTemplate(OssRule ossRule,
OssProperties ossProperties,
MinioClient minioClient) {
return new MinioTemplate(minioClient, ossRule, ossProperties); return new MinioTemplate(minioClient, ossRule, ossProperties);
} }

View File

@ -19,7 +19,6 @@ import com.qiniu.storage.BucketManager;
import com.qiniu.storage.Region; import com.qiniu.storage.Region;
import com.qiniu.storage.UploadManager; import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth; import com.qiniu.util.Auth;
import lombok.AllArgsConstructor;
import org.springblade.core.oss.QiniuTemplate; import org.springblade.core.oss.QiniuTemplate;
import org.springblade.core.oss.props.OssProperties; import org.springblade.core.oss.props.OssProperties;
import org.springblade.core.oss.rule.OssRule; import org.springblade.core.oss.rule.OssRule;
@ -36,16 +35,12 @@ import org.springframework.context.annotation.Bean;
* *
* @author Chill * @author Chill
*/ */
@AllArgsConstructor
@AutoConfiguration(after = OssConfiguration.class) @AutoConfiguration(after = OssConfiguration.class)
@ConditionalOnClass({Auth.class, UploadManager.class, BucketManager.class}) @ConditionalOnClass({Auth.class, UploadManager.class, BucketManager.class})
@EnableConfigurationProperties(OssProperties.class) @EnableConfigurationProperties(OssProperties.class)
@ConditionalOnProperty(value = "oss.name", havingValue = "qiniu") @ConditionalOnProperty(value = "oss.name", havingValue = "qiniu")
public class QiniuConfiguration { public class QiniuConfiguration {
private final OssProperties ossProperties;
private final OssRule ossRule;
@Bean @Bean
@ConditionalOnMissingBean(com.qiniu.storage.Configuration.class) @ConditionalOnMissingBean(com.qiniu.storage.Configuration.class)
public com.qiniu.storage.Configuration qnConfiguration() { public com.qiniu.storage.Configuration qnConfiguration() {
@ -54,7 +49,7 @@ public class QiniuConfiguration {
@Bean @Bean
@ConditionalOnMissingBean(Auth.class) @ConditionalOnMissingBean(Auth.class)
public Auth auth() { public Auth auth(OssProperties ossProperties) {
return Auth.create(ossProperties.getAccessKey(), ossProperties.getSecretKey()); return Auth.create(ossProperties.getAccessKey(), ossProperties.getSecretKey());
} }
@ -66,14 +61,19 @@ public class QiniuConfiguration {
@Bean @Bean
@ConditionalOnBean(com.qiniu.storage.Configuration.class) @ConditionalOnBean(com.qiniu.storage.Configuration.class)
public BucketManager bucketManager(com.qiniu.storage.Configuration cfg) { public BucketManager bucketManager(OssProperties ossProperties,
com.qiniu.storage.Configuration cfg) {
return new BucketManager(Auth.create(ossProperties.getAccessKey(), ossProperties.getSecretKey()), cfg); return new BucketManager(Auth.create(ossProperties.getAccessKey(), ossProperties.getSecretKey()), cfg);
} }
@Bean @Bean
@ConditionalOnBean({Auth.class, UploadManager.class, BucketManager.class}) @ConditionalOnBean({Auth.class, UploadManager.class, BucketManager.class})
@ConditionalOnMissingBean(QiniuTemplate.class) @ConditionalOnMissingBean(QiniuTemplate.class)
public QiniuTemplate qiniuTemplate(Auth auth, UploadManager uploadManager, BucketManager bucketManager) { public QiniuTemplate qiniuTemplate(OssRule ossRule,
OssProperties ossProperties,
Auth auth,
UploadManager uploadManager,
BucketManager bucketManager) {
return new QiniuTemplate(auth, uploadManager, bucketManager, ossProperties, ossRule); return new QiniuTemplate(auth, uploadManager, bucketManager, ossProperties, ossRule);
} }