Bạn có thể sử dụng @Bean
để cung cấp lớp bên thứ ba hiện có cho bối cảnh ứng dụng khung công tác Spring của bạn.
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/view/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
Bằng cách sử dụng @Bean
chú thích, bạn có thể bọc một lớp bên thứ ba (nó có thể không có @Component
và nó có thể không sử dụng Spring), như một hạt đậu mùa xuân. Và sau đó khi nó được gói bằng cách sử dụng @Bean
, nó là một đối tượng đơn lẻ và có sẵn trong ngữ cảnh ứng dụng khung công tác Spring của bạn. Bây giờ bạn có thể dễ dàng chia sẻ / tái sử dụng loại đậu này trong ứng dụng của mình bằng cách sử dụng phép nội xạ phụ thuộc và @Autowired
.
Vì vậy, hãy nghĩ rằng @Bean
chú thích là một trình bao bọc / bộ chuyển đổi cho các lớp bên thứ ba. Bạn muốn làm cho các lớp bên thứ ba có sẵn cho bối cảnh ứng dụng khung công tác Spring của bạn.
Bằng cách sử dụng @Bean
mã ở trên, tôi tuyên bố rõ ràng một bean duy nhất bởi vì bên trong phương thức, tôi rõ ràng đang tạo đối tượng bằng new
từ khóa. Tôi cũng đang gọi thủ công các phương thức setter của lớp đã cho. Vì vậy, tôi có thể thay đổi giá trị của trường tiền tố. Vì vậy, công việc thủ công này được gọi là sáng tạo rõ ràng. Nếu tôi sử dụng @Component
cho cùng một lớp, bean được đăng ký trong bộ chứa Spring sẽ có giá trị mặc định cho trường tiền tố.
Mặt khác, khi chúng tôi chú thích một lớp với @Component
, chúng tôi không cần phải sử dụng new
từ khóa theo cách thủ công . Nó được xử lý tự động bởi Spring.