Fasulye, bahar konteyneri tarafından yönetilen bir POJO'dur (Düz Eski Java Nesnesi).
Yaylı kaplar varsayılan olarak çekirdeğin sadece bir örneğini oluşturur. Bu fasulye bellekte önbelleğe alınır, böylece fasulye için tüm istekler aynı çekirdeğe paylaşılan bir referans döndürür.
@Bean ek açıklaması, uygulama bağlamında yayın fasulye olarak kaydedildiği bir nesne döndürür. Yöntemin içindeki mantık, örneği oluşturmaktan sorumludur.
@Bean ek açıklamasını ne zaman kullanıyoruz?
Otomatik yapılandırma bir seçenek olmadığında. Örneğin, bileşenleri üçüncü taraf kitaplığından bağlamak istediğimizde, kaynak kodu kullanılamadığından, sınıflara @Component ile ek açıklama ekleyemeyiz.
Gerçek zamanlı senaryo, birisinin Amazon S3 grubuna bağlanmak istemesi olabilir. Kaynak mevcut olmadığından, @bean yaratması gerekir.
@Bean
public AmazonS3 awsS3Client() {
BasicAWSCredentials awsCreds = new BasicAWSCredentials(awsKeyId, accessKey);
return AmazonS3ClientBuilder.standard().withRegion(Regions.fromName(region))
.withCredentials(new AWSStaticCredentialsProvider(awsCreds)).build();
}
Yukarıdaki kod için kaynak -> https://www.devglan.com/spring-mvc/aws-s3-java
Çünkü yukarıdaki @Bileşen Açıklaması'ndan bahsetmiştim.
@Component Açıklamalı bir sınıfın "bileşen" olduğunu belirtir. Bu sınıflar, ek açıklama tabanlı yapılandırma ve sınıf yolu taraması kullanılırken otomatik algılama adayları olarak kabul edilir.
Bileşen açıklaması, sınıfı tek bir fasulye olarak kaydeder.