Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
Maven 组件扫描无法定位所有类_Maven_Spring Mvc_Spring Annotations - Fatal编程技术网

Maven 组件扫描无法定位所有类

Maven 组件扫描无法定位所有类,maven,spring-mvc,spring-annotations,Maven,Spring Mvc,Spring Annotations,我有一个简单的mavenized Spring 3.1 MVC应用程序,在Tomcat 6.0服务器上的Eclipse中运行 我的控制器正在自动连接DAO,如下所示 @Autowired private UserDAO userDAO; @Component public class UserDAO extends NamedParameterJdbcDaoSupport implements UserDetailsService {....} 我的spring上下文文件中有。一切都很好。现

我有一个简单的mavenized Spring 3.1 MVC应用程序,在Tomcat 6.0服务器上的Eclipse中运行

我的控制器正在自动连接DAO,如下所示

@Autowired
private UserDAO userDAO;

@Component
public class UserDAO extends NamedParameterJdbcDaoSupport implements UserDetailsService {....}
我的spring上下文文件中有
。一切都很好。现在,我对UserDAO执行了ctrl+c+ctrl+p(复制粘贴)。我把名字保留为CopyOfUserDAO。我将Controller中的私有类更改为CopyOfUserDAO。当我启动tomcat时,它无法找到CopyOfUseDaoBean。我做了各种各样的清理,但它找不到复印机。我甚至从头开始创建了一个新类并更新了控制器,但它却找不到它


我做错了什么?

如果您检查了新dao类的名称和包,发现一切正常,那么在编译dao或project的项目包以包含新类之后,请检查。然后尝试清理tomcat缓存。tomcat的停止和启动。如果部署war文件,请检查war文件是否存在新的dao文件,如果确定,请尝试手动将其复制到webapp文件夹

@Component
public class UserDAO extends NamedParameterJdbcDaoSupport 
                  implements UserDetailsService {....}
我无法理解您正在做什么,为什么要从dao层实现服务类。
如果您想为dao创建对象,那么请使用
@Repository
注释,或者您正在使用服务意味着使用
@service
注释我解决了我的问题。我忘了添加“上下文:组件扫描”!!我在应用程序上下文中手动声明了UserDAO,因此发现/实例化了它

那么除了

<mvc:annotation-driven />

我们需要补充一点

<context:component-scan base-package="package where classes are declared.">


我花了很多时间研究maven的问题。这个问题与Maven没有任何关系。

它们都在同一个包中吗?我实际上测试了所有选项:(我将控制器更改为使用UserDAO并启动了服务器。在服务器运行时,我修改了CopyOfUserDAO。我在服务器下看到了我的项目的状态(在服务器视图中)来自synchronized->restart->synchronized的更改。我看到类文件已更新,但服务器不会重新启动。如果我对UserDAO执行相同操作,只要我更改代码,服务器就会在几秒钟内重新启动。这告诉我,出于某种原因,CopyOfUserDAO不被视为已部署的组件。我正处于构建应用程序的初始阶段应用程序。您的答案是我的问题的解决方案吗?还是只是您所指的模式?谢谢!其解决方案请尝试@Repository annotation用于您的DAO。我不认为这是一个解决方案。请检查此项……我解决了我的问题。请参阅下面的答案。