Printemps @Autocâblés ne peut pas fil Jpa référentiel
J'ai clairement manqué quelque chose.
Je suis en train de faire un simple spring boot
app avec spring data jpa
inluded et le visage d'erreur suivantes:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [locassa.domain.repository.PersonRepository] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1373) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1119) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
... 32 common frames omitted
Mon code:
Application:
@SpringBootApplication
@ComponentScan(basePackages = {"app.controller", "app.domain"})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>pl.mosek</groupId>
<artifactId>pl.mosek</artifactId>
<version>0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.0.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.6</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
Contrôleur:
@RestController
public class TestController {
@Autowired
PersonService personService;
@RequestMapping("/")
public String index() {
return "Test spring boot";
}
@RequestMapping("/person/{id}")
public Person personById(@PathVariable Long id) {
return personService.findPerson(id);
}
}
PersonService:
public interface PersonService {
Person findPerson(Long id);
}
PersonServiceImpl:
@Service
public class PersonServiceImpl implements PersonService {
@Autowired
PersonRepository personRepository;
public Person findPerson(Long id) {
return personRepository.findOne(id);
}
}
PersonRepository (ce qu'on ne peut être autocâblés):
public interface PersonRepository extends CrudRepository<Person, Long> {
}
Cherché sur le web déjà. Je n'ai pas trouvé une chose. Des idées?
les classes du package>")public class Application {}, est assez, enlevez le surplus d'annotations.
OriginalL'auteur krzakov | 2015-12-09
Vous devez vous connecter pour publier un commentaire.
J'ai également eu le même problème.Je l'ai résolu avec la solution suivante. Si vos classes d'entités et des Dépôts dans un autre package, vous devez utiliser les annotations suivantes.
app.domain
. Les entités sont sousapp.domain.model
et des dépôts en vertu deapp.domain.repository
J'ai essayé
@EnableJpaRepositories
mais sans conjointement avec@EntityScan
. Deux de ces annotations résoudre l'isssue.Je vous remercie beaucoup.
Si vous n'avez pas besoin de la autowire?
En quelque sorte, qui fixe l'erreur ..
OriginalL'auteur sasanka