我已经定义了自定义UserDetailService
命名为UserService
,它工作正常。当我在某个 bean 中自动装配它时,它给了我错误
org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.restaurant.service.UserService] 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)}
我已经在这个论坛上检查了所有与此相关的已回答的解决方案,但它并没有帮助我解决我的问题,所以我再次发布这个问题。
在我的rootcontext.xml
我中包含了“ context:annotation-config
”标签,在我的webcontext.xml
我中包含了"context:component-scan base-package="com.restaurant""
. 我还观察到默认构造函数UserService
在服务器启动时被调用。但是仍然将其自动装配到其他 bean 中不起作用。除 custom 外,所有其他 autowire 都可以使用UserDetailService
。
任何人都可以帮我解决它,因为我完全陷入了这个问题。
我的自定义 UserService 类如下所示:
@Service
public class UserService implements UserDetailsService
{
@Autowired
private UserDAO userDAO;
public UserDetails loadUserByUsername(String username)throws UsernameNotFoundException, DataAccessException {
User user = userDAO.findUnique("select usr from User usr where usr.isActive = 1 and usr.userName = ?", username);
if(user == null) {
throw new UsernameNotFoundException("User not found");
}
return user;
}
}