2011-05-06 18 views

Respuesta

70

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.

+0

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

+2

@Marco si no tiene ningún estado (variables de instancia diferentes de los beans de primavera), no se producirán problemas de concurrencia. – Bozho

+0

"desea" requerir una nueva instancia de un bean cada vez o "no" requerirá una nueva instancia de un bean cada vez? – Harshana

3

De forma predeterminada - Sí.

Sin embargo, puede anular este comportamiento utilizando la anotación @Scope. Por ejemplo: @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)

Cuestiones relacionadas