2017-08-27 60 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