У меня будет простой тест с spring data jpa
.Весенние данные JPA - нет подходящего компонента для зависимости
У меня есть простой интерфейс pojo
, интерфейс и приложение runner
.
Вот мой код:
package aa.bb.cc.repository;
@Repository
public interface ContentRepository extends CrudRepository<Content, Long>{
}
И у меня есть простой POJO
:
@Entity
@Table(name = "content")
public class Content {
public Content(String name, String title, String description) {
this.name = name;
this.title = title;
this.description = description;
}
@NotNull
private String name;
@NotNull
private String title;
@NotNull
private String description;
...
}
И Application
класс:
package aa.bb.cc.repository;
@SpringBootApplication
public class Application {
private static final Logger log = LoggerFactory.getLogger(Application.class);
public static void main(String[] args) {
SpringApplication.run(Application.class);
}
@Bean
public CommandLineRunner demo(ContentRepository repository) {
return (args) -> {
// save two contents
repository.save(new Content("name1", "title1", "description1"));
// fetch all Contents
log.info("Contents found with findAll():");
for (Content eachContent : repository.findAll()) {
log.info(eachContent.toString());
}
log.info("");
};
}
}
Мои pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.185</version>
</dependency>
Я получаю это исключение:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [aa.bb.cc.repository.ContentRepository] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
Я видел некоторые связанные с этим проблемы, но не может решить эту проблему. Какое решение?
UPDATE
spring-config.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<jpa:repositories base-package="aa.bb.cc.repository"/>
<context:annotation-config/>
</beans>
https://spring.io/guides/gs/accessing-data-jpa/ это именно тот пример, который вы имеете дело с, пожалуйста, вы можете убедиться, что ваш pom.xml выглядит точно так же. Причина, кроме того, что все, что вы опубликовали, похоже на то, что код –
для весенней загрузки и данных jpa: https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot -sample-data-jpa – specializt