Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 找不到bean定义,我也应该注释接口吗?_Java_Spring_Spring Mvc_Spring 3 - Fatal编程技术网

Java 找不到bean定义,我也应该注释接口吗?

Java 找不到bean定义,我也应该注释接口吗?,java,spring,spring-mvc,spring-3,Java,Spring,Spring Mvc,Spring 3,我有一个如下所示的界面 public interface UserManager { void insertUser(User user); ....... 现在我有一个实现类,如下所示 @Service public class UserManagerImpl implements UserManager { @Autowired private UserDAO userDAO; 在我的控制器中 @Controller public class

我有一个如下所示的界面

   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" />
我能够确定自动布线没有发生,即使它是注释驱动的,并且组件扫描已打开。要使自动布线正常工作,我还需要做些什么吗?


 <mvc:annotation-driven/>

在您的配置文件中也是必需的

也许这很愚蠢。。。但请尝试从UserManager Impl中删除implements UserManager

您应该使用
@Service(“userManager”)
。这是告诉Spring您想用“userManager”命名您的
UserManagerImpl
bean实例的一种方式。

与我遇到的错误相同,但我还有一个dao类用于检索用户管理器的信息。您应该向dao类添加@Repository注释。 你的另一个刀类是这样的

@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;
    }
}

所有的类都在com.foo包中吗?是的,所有的类都在com.foo包中,所以组件扫描工作正常。那么
UserDAO
呢?你有这个接口的正确实现吗?@PetrMensik是的,我在问题中添加了UserDAOImpl类片段。我在谷歌搜索中发现,您需要用相应的角色为类添加注释,但我已经在这样做了。我已经用@Component为UserManager添加了注释。自动连线仍然没有发生。它和bean自动连线有什么关系吗?是MVC的,对吗?我也添加了,但没有在这里发布。还是一样的例外。如果你有,一切看起来都很好,你确定一切都是com.foo吗?你的日志上还有其他内容吗?是的,它的com.foo,日志指向同一个东西“NoSuchBeanDefinitionException”,我会试试,然后告诉你。
@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;
    }
}