2017-12-26 8 views
0

Ich habe Web-Anwendung mit dem RepositoryWie beheben BeanCreationException Problem?

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

Meine Anwendung config:

@SpringBootApplication 
@EntityScan("ru.dev.avtonomki.model") 
@ComponentScan("ru.dev.avtonomki") 
@EnableAutoConfiguration 
public class Application { 
    public static void main(String[] args) { 
    SpringApplication.run(Application.class, args); 
    } 
} 

Wenn er gestartet wird Sprint-Boot bekam ich die Frage:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userRepository': Could not resolve matching constructor (hint: specify index/type/name arguments for simple parameters to avoid type ambiguities) 
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:240) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1193) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1095) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getSingletonFactoryBeanForTypeCheck(AbstractAutowireCapableBeanFactory.java:923) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:804) 
at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeMatch(AbstractBeanFactory.java:558) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:432) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:395) 
at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:220) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1267) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1101) 
+0

wo ist Paket 'User' und' UserRepository'? – amir110

+0

Benutzer - ru.dev.avtonomki.model, UserRepository - ru.dev.avtonomki.repository. Denken Sie, Paket macht Sinn? – Yaroslav

+0

ja. '@ ComponentScan' prüft Beans, die Sie in seinem Eingabe-Array definiert haben. Wenn Ihre Bean nicht in der angegebenen Paketadresse angegeben ist, wird BeanCreationException angezeigt. (Natürlich sollten Sie auch '@ Repository' hinzufügen.) – amir110

Antwort

0

Sie haben Ihr zu annotieren Repository mit @Repository wie so,

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

Ab Spring 2.5, diese Anmerkung dient auch als Spezialisierung von @Component, so dass für Klassen Implementierung autodetected durch Classpath Scannen werden.

Verwandte Themen