Junior — Middle
¿Cuál es la diferencia entre las anotaciones @Bean y @Component en Spring, y en qué casos se deben usar?
sobes.tech AI
Respuesta de la IA
La anotación @Component se utiliza para detectar y registrar automáticamente la clase como un bean de Spring mediante el escaneo de componentes. Se aplica directamente sobre la clase que debe convertirse en un bean.
La anotación @Bean se aplica sobre un método dentro de una clase marcada como de configuración (@Configuration). Este método devuelve un objeto que Spring registrará como bean.
Diferencias principales:
@Component— para clases que se detectan automáticamente mediante escaneo.@Bean— para crear un bean manualmente en una clase de configuración.
Cuándo usar:
@Component— cuando la clase en sí misma es un componente y puede ser encontrada automáticamente.@Bean— cuando se necesita crear un bean a partir de una clase externa o cuando se requiere una lógica más compleja para crear el objeto.
Ejemplo:
@Component
public class MyService {
// ...
}
@Configuration
public class AppConfig {
@Bean
public MyRepository myRepository() {
return new MyRepository();
}
}