Вот выдержка из моего определения компонентов приложений, я хочу иметь возможность ссылаться на beans, которые я определил.Spring JavaConfig как я могу ссылаться на beans, которые я определил для создания новых bean-компонентов
@Configuration
@ComponentScan({"com.abc.config", "com.abc.config.common"})
public class ApplicationConfig {
@Bean(name = "AWSCredentialsProvider")
AWSCredentials credentialsProvider() { return new AWSCredentials(/*Omitted*/); }
@Bean(name = "DynamoDBClient")
AmazonDynamoDBClient dynamoDBClient() {
AmazonDynamoDBClient dynamoDB = new AmazonDynamoDBClient(credentialsProvider());
return dynamoDB;
}
@Bean S3Repository s3Repository() {
AmazonS3 s3 = new AmazonS3Client(credentialsProvider());
return new S3Repository(s3);
}
@Bean LevelMapper levelMapper() { return new LevelMapper(s3Repository()); }
@Bean ImageDownloader imageDownloader() { return new ImageDownloader(s3Repository()); }
}
Прямо сейчас, что я делаю вызов методов, как s3Repository()
в двух местах; таким образом я буду создавать два экземпляра репозитория, тогда как я хотел бы, чтобы в приложении только один экземпляр. Что-то вроде credentialsProvider()
является легким, поэтому я не возражаю против создания нового экземпляра для каждого компонента.
Не могли бы вы указать мне куда-нибудь, где это задокументировано? – nikhil
@nikhil Добавлена ссылка источника Docs. –
Спасибо, я не думаю, что я смог бы найти эту часть документации самостоятельно. – nikhil