为什么我不能在具有基于注释的配置的不同包中具有相同的Controller名称?
Jul 27, 2011 10:56:15 AM org.springframework.web.servlet.FrameworkServlet initServletBean SEVERE: Context initialization failed org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/dispatcher-servlet.xml]; nested exception is java.lang.IllegalStateException: Annotation-specified bean name 'fooController' for bean class [com.fooapp.ctrl.FooController] conflicts with existing, non-compatible bean definition of same name and class [com.fooapp.ctrl.admin.FooController]
在这两个包中,我使用@Controller
注释定义了Controller:
@Controller public class FooController { ...
我是否必须在admin
包中为Controller使用其他名称?
@Component
或派生( @Controller
, @Service
@Controller
等)的默认bean名称是具有较低第一个字符的非限定类名。 为了将这两个控制器放在一起,只需设置一个不同的bean名称(至少其中一个):
@Controller("secondFooController")
请查看文档的此部分 。