Я недавно обновил свой проект SpringCloud с Brixton до Finchley, и все работало просто отлично.Я работал над Finchley.SR2, и у меня не было проблем, но всякий раз, когда я обновляю свой проект до Finchley.RELEASE (и это единственное изменение, которое я делаю), проект не запускается.
Причина в том, чтоПроект найти AmazonS3Client
Bean:
...Unsatisfied dependency expressed through constructor parameter 0;
nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type 'com.amazonaws.services.s3.AmazonS3Client' available:
expected at least 1 bean which qualifies as autowire candidate.
Dependency annotations: {}
Это мои предыдущие соответствующие конфигурации и классы:
build.gradle
buildscript {
ext {
springBootVersion = '2.0.2.RELEASE'
}
...
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath('io.spring.gradle:dependency-management-plugin:1.0.5.RELEASE')
}
}
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:Finchley.SR2"
}
}
dependencies {
...
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.cloud:spring-cloud-starter-aws')
compile('org.springframework.cloud:spring-cloud-starter-config'
...
}
...
S3Config.java (Класс, создающий компонент AmazonS3 / AmazonS3Client)
...
@Configuration
public class S3Config {
@Bean
public AmazonS3 amazonS3() {
return AmazonS3ClientBuilder.standard()
.withCredentials(new DefaultAWSCredentialsProviderChain())
.build();
}
}
StorageService (класс, который не может найти компонент)
...
@Service
public class StorageService {
private final AmazonS3Client amazonS3Client;
@Autowired
public StorageService(AmazonS3Client amazonS3Client) {
this.amazonS3Client = amazonS3Client;
}
...
}
И это единственное изменение, которое я делаю в файле build.gradle при обновлении до Finchley. Выпуск:
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:Finchley.RELEASE"
}
}
Я пытался найти все пропавшиебиблиотеки и настройки всех конфигураций, которые я могу найти, но, похоже, ни одна из них не дает никакого эффекта.