Siendo bastante nuevo en Spring, tengo una pregunta sobre cómo anotar una clase. Al anotar una clase con, @Component
¿significa esto que esta clase será un Spring Bean y, por defecto, un singleton?
fuente
Siendo bastante nuevo en Spring, tengo una pregunta sobre cómo anotar una clase. Al anotar una clase con, @Component
¿significa esto que esta clase será un Spring Bean y, por defecto, un singleton?
Sí, eso es correcto, @Component
es un Spring bean y un Singleton.
Si la clase pertenece a la capa de servicio es posible que desee realizar anotaciones con @Service
su lugar
Pero tenga en cuenta que para que se detecten estas anotaciones, debe colocar esta línea en applicationContext.xml
:
<context:component-scan base-package="com.yourcompany" />
Acerca de los singleton: los frijoles de primavera están todos en el alcance de singleton de forma predeterminada. Lo único que debe tener en cuenta es que no debe almacenar el estado en las variables de campo (solo deben contener dependencias). Por lo tanto, su aplicación será segura para subprocesos y no necesitará una nueva instancia de un bean cada vez. En otras palabras, sus frijoles son apátridas.
De forma predeterminada: sí.
Sin embargo, puede anular este comportamiento mediante la
@Scope
anotación. Por ejemplo:@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
fuente