2013-04-10 27 views
0

我的表演低於找不到bean定義,我是否應該標註一個接口?

public interface UserManager { 

     void insertUser(User user); 
    ....... 

接口現在我有一個實現類,如下

@Service 
public class UserManagerImpl implements UserManager { 

    @Autowired 
    private UserDAO userDAO; 

在我的控制器

@Controller 
public class ExampleGizmoController { 

    @Autowired 
    private UserManager userManager; 

在UserDAOImpl是

@Service 
public class UserDAOImpl implements UserDAO { 

    @Autowired 
    private SessionFactory sessionFactory; 

我的應用程序的context.xml

<context:annotation-config/> 
<context:component-scan base-package="com.foo" /> 

它掃描我的所有packages.I已經部署了它作爲戰爭的文件,並且在部署情況, 的的UserManager屬性沒有得到自動連接到ExampleGizmoController並顯示錯誤Tomcat作爲下面

Spring-MVC threw load() exception: org.springframework.beans.factory.NoSuchBeanDefinitionException: 
No qualifying bean of type [com.foo.UserManager] found for dependency: expected at least 1 bean 
which qualifies as autowire candidate for this dependency. Dependency annotations: 
{@org.springframework.beans.factory.annotation.Autowired(required=true)} 

我能夠做的是,自動裝配沒有發生,即使它被標註驅動組件掃描開啓。還有什麼我應該做的自動裝配工作?

+0

是com.foo包中的所有類嗎? – Satya 2013-04-10 12:19:40

+0

是的,所有的類都在com.foo包中,所以組件掃描工作。 – cherit 2013-04-10 12:31:31

+0

那麼'UserDAO'呢?你有這個接口的正確實現嗎? – 2013-04-10 12:32:03

回答

1
<mvc:annotation-driven/> 

還需要在您的配置文件

+0

它是否必須對bean進行任何操作?它的MVC權利?我也加了,但沒有發佈在這裏。仍然是例外。 – cherit 2013-04-10 12:55:22

+0

如果你有這個,一切看起來不錯,你確定一切都是com.foo?你的日誌會說別的嗎? – NimChimpsky 2013-04-10 13:00:24

+0

是它的com.foo,日誌指向相同的事物「NoSuchBeanDefinitionException」 – cherit 2013-04-10 13:39:56

0

也許是愚蠢的......但試圖從的UserManager默認地將Impl刪除工具的UserManager ..

+0

我會嘗試並讓你知道。 – cherit 2013-04-10 13:40:32

+0

不要那樣做 – NimChimpsky 2013-04-10 14:31:38

0

您應該使用@Service("userManager")。它告訴Spring你想用「userManager」命名你的UserManagerImpl bean實例。

0

同樣的錯誤,我面臨,但我有一個更多的dao類,其中檢索用戶管理器的信息。您應該將@Repository註釋添加到dao類。 你的另一個dao類看起來像那樣;

@Repository("userManagerDao") 
public class UserManagerDAOImpl implements UserManagerDao{ 
    public UserManagerDTO createNewUserManager() { 
     UserManagerDTO userManager = new UserManagerDTO(); 
     userManager.setId(1); 
     userManager.setFirstName("First Name"); 
     userManager.setLastName("Last Name"); 
     return userManager; 
    } 
} 
相關問題