example ejemplos definicion agrupar java spring component-scan

definicion - radio button java netbeans ejemplos



paquetes múltiples en contexto: componente-escaneo, configuración de primavera (7)

¿Cómo puedo agregar varios paquetes en el archivo spring-servlet.xml en context:component-scan element?

Yo he tratado

<context:component-scan base-package="z.y.z.service" base-package="x.y.z.controller" />

y

<context:component-scan base-package="x.y.z.service, x.y.z.controller" />

y

<context:component-scan base-package="x.y.z.service" /> <context:component-scan base-package="x.y.z.controller" />

pero obtuve un error:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [x.y.z.dao.daoservice.LoginDAO] found for dependency:


El siguiente enfoque es correcto:

<context:component-scan base-package="x.y.z.service, x.y.z.controller" />

Tenga en cuenta que el error se queja de xyzdao.daoservice.LoginDAO , que no se encuentra en los paquetes mencionados anteriormente, tal vez se olvidó de agregarlo:

<context:component-scan base-package="x.y.z.service, x.y.z.controller, x.y.z.dao" />


Enfoque de anotación

@ComponentScan({ "x.y.z", "x.y.z.dao" })


Otro enfoque de anotación general:

@ComponentScan(basePackages = {"x.y.z"})


Por ejemplo, tiene el paquete "com.abc" y tiene varios paquetes dentro, puede usar

@ComponentScan("com.abc")


Puede agregar múltiples paquetes base (vea la respuesta de axtavt ), pero también puede filtrar lo que se escanea dentro del paquete base:

<context:component-scan base-package="x.y.z"> <context:include-filter type="regex" expression="(service|controller)/..*"/> </context:component-scan>


Si xyz es el paquete común, entonces puedes usar:

<context:component-scan base-package="x.y.z.*">

incluirá todo el paquete que comience con xyz como: xyzcontroller, xyzservice, etc.


<context:component-scan base-package="x.y.z"/>

funcionará ya que el resto de los paquetes son subpaquetes de "xyz". Por lo tanto, no necesita mencionar cada paquete individualmente.