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.