Comencé a trabajar en un nuevo proyecto utilizando Spring 3 y estoy usando anotaciones. Me encanta que pueda conectar mis clases para obtener las dependencias inyectadas, pero sé que es una mala práctica tener context:component-scan
comenzar en el paquete base.¿Qué es una forma inteligente de organizar clases en Spring 3 para escaneo de componentes?
Estoy usando un DispatcherServlet
que tiene su propio archivo de configuración xml. En eso también es un context:component-scan
. Cuando comencé a aprender Spring, tuve una superposición en mis escaneos de componentes y vi frijoles creados varias veces. Me gustaría evitar eso.
¿Cuál es una buena manera de organizar mis paquetes o mis escaneos de componentes para cubrir todos los beans sin duplicación?
Actualmente tengo paquetes de la siguiente manera:
my.package.controller
my.package.dao
my.package.entity
my.package.service
my.package.util
Si tengo granos en todos esos paquetes a continuación, parece que el camino más fácil sería poner en <context:component-scan base-package="my.package"></context:component-scan>
applicationContext.xml y hacerse con él.
¿Sería mejor escanear my.package.controller
en el xml del operador y el resto (excluyendo my.package.controller) en applicationContext.xml?
¿O debería organizar todas mis clases anotadas en un área y todo lo demás en otra? Algo así como:
my.package.spring.controller
my.package.spring.dao
my.package.spring.entity
my.package.spring.service
my.package.spring.util
my.package.notannotated
my.package.notannotated2
estoy usando @Autowired añadir registro a la mayoría si no todas mis clases, así que no sé que voy a tener ninguna clase que no serán anotados.
Odio quedar atrapado en la configuración ... Prefiero quedar atrapado en el código, por lo que si alguien puede ofrecer algún consejo, los recibiré inmediatamente.
Gracias!
Guau, eso fue más fácil de lo que pensaba, gracias. ¿La configuración de mi paquete parece razonable? – Paul
Me parece bien, eso es casi exactamente lo que hago. – sourcedelica