multiple packages in context:component-scan, spring config

半城伤御伤魂 提交于 2019-11-26 06:57:53

问题


How can I add multiple packages in spring-servlet.xml file in context:component-scan element?

I have tried

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

and

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

and

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

but got error:

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

回答1:


The following approach is correct:

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

Note that the error complains about x.y.z.dao.daoservice.LoginDAO, which is not in the packages mentioned above, perhaps you forgot to add it:

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



回答2:


Annotation Approach

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



回答3:


You can add multiple base packages (see axtavt's answer), but you can also filter what's scanned inside the base package:

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



回答4:


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

will work since the rest of the packages are sub packages of "x.y.z". Thus, you dont need to mention each package individually.




回答5:


Another general Annotation approach:

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



回答6:


If x.y.z is the common package then you can use:

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

it will include all the package that is start with x.y.z like: x.y.z.controller,x.y.z.service etc.




回答7:


For Example you have the package "com.abc" and you have multiple packages inside it, You can use like

@ComponentScan("com.abc")


来源:https://stackoverflow.com/questions/5269450/multiple-packages-in-contextcomponent-scan-spring-config

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!