A Bean adalah POJO (Plain Old Java Object), yang dikelola oleh wadah pegas.
Wadah musim semi hanya membuat satu instance kacang secara default. Kacang ini di-cache dalam memori sehingga semua permintaan kacang akan mengembalikan referensi yang dibagikan ke kacang yang sama.
Anotasi @Bean mengembalikan objek yang muncul register sebagai kacang dalam konteks aplikasi. Logika di dalam metode bertanggung jawab untuk membuat instance.
Kapan kita menggunakan anotasi @Bean?
Ketika konfigurasi otomatis bukan opsi. Misalnya ketika kita ingin mengirim komponen dari pustaka pihak ketiga, karena kode sumber tidak tersedia sehingga kita tidak dapat membubuhi keterangan kelas dengan @Component.
Skenario waktu nyata adalah seseorang ingin terhubung ke Amazon S3 bucket. Karena sumbernya tidak tersedia, ia harus membuat @bean.
@Bean
public AmazonS3 awsS3Client() {
BasicAWSCredentials awsCreds = new BasicAWSCredentials(awsKeyId, accessKey);
return AmazonS3ClientBuilder.standard().withRegion(Regions.fromName(region))
.withCredentials(new AWSStaticCredentialsProvider(awsCreds)).build();
}
Sumber untuk kode di atas -> https://www.devglan.com/spring-mvc/aws-s3-java
Karena saya menyebutkan @Component Annotation di atas.
@Component Menunjukkan bahwa kelas beranotasi adalah "komponen". Kelas semacam itu dianggap sebagai kandidat untuk deteksi otomatis ketika menggunakan konfigurasi berbasis anotasi dan pemindaian jalur kelas.
Anotasi komponen mendaftarkan kelas sebagai satu kacang.