有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Autowire不连接自定义UserDetails服务

我已经定义了名为UserService的自定义UserDetailService,它运行良好。当我在某个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中不起作用。除自定义UserDetailService之外的所有其他autowire工作

谁能帮我解决这个问题,因为我完全陷入了这个问题

我的自定义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;        
}

}

共 (1) 个答案

  1. # 1 楼答案

    这种例外可能有几个原因。首先,您需要验证@Service注释是否正确插入到类定义之前。如果您的服务是UserService,则应遵循以下模式

    @Service
    public class UserService{
    
     // attributes and methods 
    
    }