2017-08-27 48 views
1

我试图做简单的门户网站,但是当我尝试通过春天开机找不到类型的豆

打造代码

MVN全新安装-X

我有错误代码

说明: 在com.kapjee.dziennik.service.UserDetailsS​​erviceImpl场userRepository所需类型的豆“com.kapjee.dziennik.service.UserRepository”,可能不会被发现。 操作: 考虑在您的配置中定义一个'com.kapjee.dziennik.service.UserRepository'类型的bean。

下面给你一个项目树。

Tree of project

UserDetailsS​​erviceImpl

@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

难道你错过'User Repository'上的'@ Repository'吗? – 2017-08-27 07:52:09

+0

@RC。这是没有必要的 –

+0

你可以分享你的软件包设置 –

回答

1
@EnableJpaRepositories("com.kapjee.dziennik.model") 

我看你指定你的模型包的JPA存储库,需要包括包含该库还,包,所以如果下包com.kapjee.dziennik.repository你的仓库刚进去的水平回

@EnableJpaRepositories("com.kapjee.dziennik") 
+0

是的, 谢谢你差别很大,它有帮助! – artist

+0

@artist如果这可以解决您的问题,请随时接受答案:) –

+0

但是,如果我使用百里香改变了一个视图,它仍然是相同的错误;/ – artist

0

最可能的是,EnableJpaRepositories是导入错误的包。我猜UserRepository不在model包。使用类型安全属性basePackageClasses而不是basePackages@ComponentScanEntityScan在你的情况下是多余的。我很抱歉地说,但是看起来你把一些代码拼凑在一起,没有真正理解你在做什么。

+0

有一个链接到项目树,在那里你可以看到哪里exacly是哪个文件 – artist

+0

@artist只是做了什么,我认为是正确的 –

+0

ang它应该看起来像这样? '@ComponentScan(basePackages = {“com.kapjee.dziennik”},basePackageClasses = com.kapjee.dziennik.service.UserRepository.class)' – artist