Spring boot 弹簧靴&x2B;Groovy+;JPA,未能注入JPA
以下是我的app.groovy代码:Spring boot 弹簧靴&x2B;Groovy+;JPA,未能注入JPA,spring-boot,groovy,spring-data-jpa,Spring Boot,Groovy,Spring Data Jpa,以下是我的app.groovy代码: package org.test import javax.persistence.* import org.springframework.data.jpa.repository.JpaRepository @Grab('spring-boot-starter-data-jpa') @Grab('mysql-connector-java') @Entity @Table (name="owner") class Owner { @Id
package org.test
import javax.persistence.*
import org.springframework.data.jpa.repository.JpaRepository
@Grab('spring-boot-starter-data-jpa')
@Grab('mysql-connector-java')
@Entity
@Table (name="owner")
class Owner {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
Long ownerId;
@Column(name = 'Name')
String name;
@Column(name = 'DateOfBirth')
Date dateOfBirth;
@Column(name = 'Address')
String address;
@Override
String toString() {
return String.format(
"Owner[id=%d, Name='%s', DateOfBirth='%s']",
id, name, dateOfBirth);
}
}
interface OwnerRepository extends JpaRepository<Owner, Long> {
List<Owner> findByName(String name);
}
class Runner implements CommandLineRunner {
@Autowired
private DataSource ds;
@Autowired
private OwnerRepository repository
void run(String... args) {
for (owner in repository.findAll()) {
println owner
}
}
}
运行$spring run app.groovy后,我收到以下错误消息:
Field repository in org.test.Runner required a bean of type 'org.test.OwnerRepository' that could not be found.
Action:
Consider defining a bean of type 'org.test.OwnerRepository' in your configuration.
...
org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'runner': Unsatisfied dependency expressed through field 'repository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type 'org.test.OwnerRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
我曾尝试使用相同的代码语句测试InjectJDBCTemplate,但效果很好,所以我不知道这些代码中有什么错误
请给我一些建议,非常感谢 实际上,问题是在
Runner
类的顶部也没有@SpringBootApplication
您的
所有者存储库
顶部缺少@Repository
注释。可能就是这样。您好,谢谢您的回复,但是当我添加@Repository注释时,我收到了以下新的错误消息,Spring启动版本是v2.0.0.RELEASE:org.springframework.beans.factory.BeanCreationException:创建名为“ownerRepository”的bean时出错:bean实例化失败;嵌套异常为org.springframework.beans.beanstantiationException:未能实例化[org.test.OwnerRepository]:指定的类是接口,因此需要在Runner类上添加@EnableJpaRepositories注释。@SpringBootApplication
应添加到Runner类的顶部,而不是自己的存储库。感谢您的帮助,我添加了ⓐOwnerRepository和add上的存储库批注ⓐSpringBoot应用程序,ⓐ在Runner上启用JParePositories批注。然后出现新错误:org.springframework.beans.factory.beancreatitionException:创建名为“ownerRepository”的bean时出错:bean实例化失败;嵌套异常为org.springframework.beans.beanstantiationException:未能实例化[org.test.OwnerRepository]:指定的类是接口Spring启动版本为v2.0.0.RELEASE
Field repository in org.test.Runner required a bean of type 'org.test.OwnerRepository' that could not be found.
Action:
Consider defining a bean of type 'org.test.OwnerRepository' in your configuration.
...
org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'runner': Unsatisfied dependency expressed through field 'repository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type 'org.test.OwnerRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}