Puede utilizar @Bean
para hacer que una clase de terceros existente esté disponible para su contexto de aplicación Spring Framework.
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/view/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
Al usar la @Bean
anotación, puede ajustar una clase de terceros (puede que no tenga @Component
y puede que no use Spring), como un bean Spring. Y luego, una vez que se ajusta usando @Bean
, es como un objeto único y está disponible en el contexto de la aplicación Spring Framework. Ahora puede compartir / reutilizar fácilmente este bean en su aplicación utilizando inyección de dependencia y @Autowired
.
Así que piense en la @Bean
anotación es un contenedor / adaptador para clases de terceros. Desea que las clases de terceros estén disponibles para el contexto de la aplicación Spring Framework.
Al usar @Bean
el código anterior, declaro explícitamente un solo bean porque dentro del método, estoy creando explícitamente el objeto usando la new
palabra clave. También estoy llamando manualmente a los métodos setter de la clase dada. Entonces puedo cambiar el valor del campo de prefijo. Por lo tanto, este trabajo manual se denomina creación explícita. Si uso el @Component
para la misma clase, el bean registrado en el contenedor Spring tendrá un valor predeterminado para el campo de prefijo.
Por otro lado, cuando anotamos una clase con @Component
, no es necesario que usemos la new
palabra clave manualmente . Se maneja automáticamente por Spring.