Bean là một POJO (Plain Old Java Object), được quản lý bởi container mùa xuân.
Các container mùa xuân chỉ tạo một thể hiện của bean. Bean này được lưu trong bộ nhớ nên tất cả các yêu cầu cho bean sẽ trả về một tham chiếu được chia sẻ cho cùng một bean.
Chú thích @Bean trả về một đối tượng mà mùa xuân đăng ký dưới dạng bean trong ngữ cảnh ứng dụng. Logic bên trong phương thức chịu trách nhiệm tạo cá thể.
Khi nào chúng ta sử dụng chú thích @Bean?
Khi cấu hình tự động không phải là một lựa chọn. Ví dụ: khi chúng tôi muốn nối các thành phần từ thư viện của bên thứ ba, vì mã nguồn không có sẵn nên chúng tôi không thể chú thích các lớp bằng @Component.
Một kịch bản thời gian thực có thể là ai đó muốn kết nối với nhóm Amazon S3. Vì nguồn không có sẵn, anh ta sẽ phải tạo một @bean.
@Bean
public AmazonS3 awsS3Client() {
BasicAWSCredentials awsCreds = new BasicAWSCredentials(awsKeyId, accessKey);
return AmazonS3ClientBuilder.standard().withRegion(Regions.fromName(region))
.withCredentials(new AWSStaticCredentialsProvider(awsCreds)).build();
}
Nguồn cho mã ở trên -> https://www.devglan.com/spring-mvc/aws-s3-java
Bởi vì tôi đã đề cập đến Chú thích @Component ở trên.
@Component Chỉ ra rằng một lớp chú thích là một "thành phần". Các lớp như vậy được coi là ứng cử viên để phát hiện tự động khi sử dụng cấu hình dựa trên chú thích và quét đường dẫn lớp.
Chú thích thành phần đăng ký lớp dưới dạng một bean.