2017-08-27 2 views
1

J'essaie tout simplement faire portail web, mais lorsque je tente de construire le code parbotte de printemps n'a pas pu trouver bean de type

mvn installation propre -X

Je suis le code d'erreur

description: terrain userRepository dans com.kapjee.dziennik.service.UserDetailsServiceImpl requis un bean de type 'com.kapjee.dziennik.service.UserRepository' qui n'a pas pu être trouvé. Action: Envisagez de définir un bean de type 'com.kapjee.dziennik.service.UserRepository' dans votre configuration.

Ci-dessous vous donne un arbre de projet.

Tree of project

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!"); 
    } 

} 

} 

C'est UerService

@Service 
public interface UserService { 

    void save(User user); 

    User findByUsername(String username); 
} 

Et UserRepository

public interface UserRepository extends JpaRepository<User, Long> { 
    User findByUsername(String username); 
} 

Dans la classe principale je partage tous packaes

@SpringBootApplication 
@ComponentScan({"com.kapjee.dziennik"}) 
@EntityScan("com.kapjee.dziennik.model") 
@EnableJpaRepositories("com.kapjee.dziennik.model") 
+0

Ne manquez-vous pas un '@ Repository' sur' UserRepository'? –

+0

@RC. ce n'est pas nécessaire –

+0

pouvez-vous partager votre configuration de paquet –

Répondre

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

Je vois que spécifié les dépôts JPA dans votre package de modèle, vous devez inclure le package qui contient les dépôts aussi, donc si vos dépôts sous com.kapjee.dziennik.repository paquet juste aller un niveau de retour

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

Oui, merci beaucoup, ça aide! – artist

+0

@artist si cela résout votre problème s'il vous plaît n'hésitez pas à accepter la réponse :) –

+0

Mais si je change une chose en vue en utilisant thymeleaf, c'est toujours la même erreur;/ – artist

0

package Très probablement, EnableJpaRepositories importe mal. Je devine le UserRepository n'est pas dans le paquet model. Utilisez l'attribut de type sécurisé basePackageClasses au lieu de basePackages. @ComponentScan et EntityScan sont redondants dans votre cas. Je suis désolé de le dire, mais il semble que vous ayez assemblé du code avec du pansement et de la colle sans vraiment comprendre ce que vous faites.

+0

il y a un lien vers Tree of project, là vous pouvez voir où exacly est quel fichier – artist

+0

@artist vient de faire, et ce que je pensais était correct –

+0

ang il devrait ressembler à ceci? '@ComponentScan (basePackages = {" com.kapjee.dziennik "}, basePackageClasses = com.kapjee.dziennik.service.UserRepository.class)' – artist