我正在尝试制作简单的门户网站,但是当我尝试通过
构建代码时mvn clean install -X
我收到了错误代码
描述: com.kapjee.dziennik.service.UserDetailsServiceImpl中的字段userRepository需要一个无法找到的类型为“com.kapjee.dziennik.service.UserRepository”的bean。 行动: 考虑在配置中定义'com.kapjee.dziennik.service.UserRepository'类型的bean。
下面给出一个项目树。
UserDetailsServiceImpl
@Service
public class UserDetailsServiceImpl implements UserDetailsService {
@Autowired
private UserRepository userRepository;
@Override
@Transactional(readOnly = true)
public UserDetails loadUserByUsername(String username) throws
UsernameNotFoundException {
User user = userRepository.findByUsername(username);
if (user != null) {
Set<GrantedAuthority> grantedAuthorities = new HashSet<>();
grantedAuthorities.add(new
SimpleGrantedAuthority(user.getRole().toString()));
return new
org.springframework.security.core.userdetails.User(user.getUsername(),
user.getPassword(), grantedAuthorities);
} else {
throw new UsernameNotFoundException("User was not found!");
}
}
}
这是UerService
@Service
public interface UserService {
void save(User user);
User findByUsername(String username);
}
和UserRepository
public interface UserRepository extends JpaRepository<User, Long> {
User findByUsername(String username);
}
在大班我分享所有包
@SpringBootApplication
@ComponentScan({"com.kapjee.dziennik"})
@EntityScan("com.kapjee.dziennik.model")
@EnableJpaRepositories("com.kapjee.dziennik.model")
答案 0 :(得分:1)
最有可能的是,EnableJpaRepositories
导入错误的包。我猜测UserRepository
不在model
包中。使用类型安全属性basePackageClasses
代替basePackages
。
在您的情况下,@ComponentScan
和EntityScan
是多余的。我很遗憾地说,但似乎你把一些带有创可贴和粘合剂的代码放在一起而没有真正理解你正在做的事情。
答案 1 :(得分:1)
@EnableJpaRepositories("com.kapjee.dziennik.model")
我看到你在模型包中指定了jpa存储库,你还需要包含包含存储库的包,所以如果包com.kapjee.dziennik.repository下的存储库只是返回级别
@EnableJpaRepositories("com.kapjee.dziennik")