siendo bastante nuevo en Spring tengo una pregunta sobre anotar una clase. Al anotar una clase con @Component
¿significa esto que esta clase será un Spring Bean y de forma predeterminada un singleton?Al anotar una clase con @Component, ¿significa esto que es un Spring Bean y Singleton?
Respuesta
Sí, eso es correcto.
Si la clase pertenece a la capa de servicio es posible que desee realizar anotaciones con @Service
lugar
Pero tenga en cuenta que para que estas anotaciones a ser detectados, es necesario colocar esta línea en applicationContext.xml
:
<context:component-scan base-package="com.yourcompany" />
Acerca de los singletons: los beans de resorte están todos en el alcance singleton de forma predeterminada. Lo único que debe tener en cuenta es que no debe almacenar estado en variables de campo (solo deberían contener dependencias). Por lo tanto, su aplicación estará protegida contra subprocesos y no necesitará una nueva instancia de un bean cada vez. En otras palabras, tus granos son sin estado.
De forma predeterminada - Sí.
Sin embargo, puede anular este comportamiento utilizando la anotación @Scope
. Por ejemplo: @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
- 1. Tanto @Component como @Named para la misma clase de bean
- 2. Spring 3 @Component y static factory method
- 3. Spring: ¿cómo instanciar un bean Spring que toma un parámetro de tiempo de ejecución?
- 4. clase Anotar con clase interna
- 5. diferencia entre @Component y @Configuration en Spring 3
- 6. Controlador (Bean administrado por Spring Bean) Pregunta de Alcance: Singleton, Solicitud o Sesión?
- 7. ¿Es posible desprogramar un Spring Bean?
- 8. ¿Hay un nombre que significa "no es un singleton"?
- 9. ¿Cómo crear un Spring Bean de una clase interna?
- 10. ¿Cómo anulo una definición de Spring Bean y sigo haciendo referencia al bean reemplazado?
- 11. inyección de Spring Bean en un método principal clase
- 12. Jersey REST servicio como Spring Component
- 13. ¿Cómo manualo manualmente un bean con Spring?
- 14. Quiero definir una clase de Spring Bean sin interfaz
- 15. Uso de Jackson JSON Views sin anotar la clase de bean original
- 16. ¿Puedo anotar una propiedad final heredada con @Autowire?
- 17. clase estática y singleton
- 18. Java Spring Bean con constructor privado
- 19. @Component con el padre?
- 20. ¿Puedo tener el @Component de Spring en enum?
- 21. Inicializando Spring bean del método estático de otra clase?
- 22. Creando una clase singleton con dispatch_once para clase hiearchy
- 23. Spring ApplicationContext Bean Scope
- 24. DataTable que contiene inputText: ¿es posible con JSF Custom Component
- 25. Anotar clase interna anónima
- 26. Force Singleton Pattern en una clase que implementa una interfaz
- 27. Crear prototipo de Spring Bean con anotaciones?
- 28. Spring: Configurando Bean con un setter de dos argumentos
- 29. paquetes múltiples en contexto: component-scan, spring config
- 30. Jersey + Spring 3 + Maven 3 + Tomcat 7 @Resource en @Component Class son siempre nulos
Al usar las anotaciones @Component y/o @Service, etc., significa que estoy creando Singletons, ¿no me encontraré con problemas de simultaneidad? Para mi idea de novato, dará como resultado un bean que se utilizará a lo largo de ApplicationContext, de modo que los usuarios simultáneos obtendrán una referencia al bean simple. ¿O me estoy perdiendo algo? – Marco
@Marco si no tiene ningún estado (variables de instancia diferentes de los beans de primavera), no se producirán problemas de concurrencia. – Bozho
"desea" requerir una nueva instancia de un bean cada vez o "no" requerirá una nueva instancia de un bean cada vez? – Harshana