2011-07-27 13 views
5
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] 

Her iki pakette de @Controller açıklamasını kullanarak Controller'ı tanımladım:Neden ek açıklama temelli bir yapılandırmayla farklı bir pakette aynı Denetleyici adını kullanamıyorum?

@Controller 
public class FooController { 
... 

admin paketindeki Controller için farklı bir isim kullanmalı mıyım?

cevap

15

@Component veya türevi için varsayılan fasulye adı (@Controller, @Service, vb.), Daha düşük bir ilk karaktere sahip, nitelenmemiş sınıf adıdır. Birlikte bu iki denetleyicileri sahip olmak için, sadece (bunlardan en az biri için) farklı bir fasulye adını ayarlayın: Belgelerin

@Controller("secondFooController") 

kontrol this section.

İlgili konular