Anda bisa menggunakan @Beanuntuk membuat kelas pihak ketiga yang ada tersedia untuk konteks aplikasi kerangka kerja Spring Anda.
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/view/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
Dengan menggunakan @Beananotasi, Anda bisa membungkus kelas pihak ketiga (mungkin tidak memiliki @Componentdan mungkin tidak menggunakan Spring), sebagai kacang Spring. Dan kemudian setelah dibungkus menggunakan @Bean, itu sebagai objek tunggal dan tersedia dalam konteks aplikasi kerangka kerja Spring Anda. Anda sekarang dapat dengan mudah membagikan / menggunakan kembali kacang ini di aplikasi Anda menggunakan injeksi ketergantungan dan@Autowired .
Jadi pikirkan @Beananotasi itu adalah pembungkus / adaptor untuk kelas pihak ketiga. Anda ingin membuat kelas pihak ketiga tersedia untuk konteks aplikasi kerangka kerja Spring Anda.
Dengan menggunakan @Beankode di atas, saya secara eksplisit mendeklarasikan kacang tunggal karena di dalam metode ini, saya secara eksplisit membuat objek menggunakan newkata kunci. Saya juga secara manual memanggil metode setter dari kelas yang diberikan. Jadi saya bisa mengubah nilai bidang awalan. Jadi pekerjaan manual ini disebut sebagai penciptaan eksplisit. Jika saya menggunakan @Componentuntuk kelas yang sama, kacang yang terdaftar di wadah Spring akan memiliki nilai default untuk bidang awalan.
Di sisi lain, ketika kita membubuhi keterangan kelas dengan @Component, tidak perlu bagi kita untuk menggunakan newkata kunci secara manual . Ini ditangani secara otomatis oleh Spring.