【发布时间】:2019-12-05 21:33:40
【问题描述】:
我正在开发一个 Spring Boot 项目。用数据实现后端代码,我有一个错误。 在处理安全性之前,即当我刚刚完成了 MemberRepository、MemberService 和 MemberController 时,它运行良好。在我处理安全性之后,就会发生这种错误。
我使用 IntelliJ 作为 IDE,方法是 MySQL、Java、Spring Boot、Spring Security 和 Maven。操作系统是 Mac。
这是 MemberRepository.java 代码的一部分:
package com.springboot.reserving.member;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.context.annotation.Bean;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Repository
public interface MemberRepository extends CrudRepository<Member, Long> { ... }
这是 MemberService.java 代码的一部分:
package com.springboot.reserving.member;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
public class MemberService {
@Autowired
MemberRepository memberRepository;
...
}
这是 CustomUserDetailService.java 代码:
package com.springboot.reserving.member;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
import java.util.Optional;
@Service
public class CustomUserDetailsService implements UserDetailsService {
@Autowired
MemberRepository memberRepo;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
return Optional.ofNullable(memberRepo.read(username))
.filter(m -> m != null)
.map(m -> new SecurityMember(m)).get();
}
}
错误信息是:
Description:
Field memberRepo in com.springboot.reserving.member.CustomUserDetailsService required a bean of type 'com.springboot.reserving.member.MemberRepository' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'com.springboot.reserving.member.MemberRepository' in your configuration.
我应该怎么做才能修复这个错误?
【问题讨论】:
标签: java spring-boot spring-security spring-data