Joy*_*eep 4 spring spring-data-jpa spring-bean spring-boot
一些细节我在运行下面给出的代码时遇到了一些问题.我收到以下异常.当我尝试[CrudRepository for Spring Data]的示例代码时[1].
我有一个界面:
package com.joydeep.springboot;
import org.springframework.data.repository.CrudRepository;
import com.joydeep.springboot.vo.Message;
public interface Test1 extends CrudRepository<Message, String> { }
Run Code Online (Sandbox Code Playgroud)
VO类:
package com.joydeep.springboot.vo;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Message {
@Id
private String id;
private String text;
private String author;
private Date created;
public Message() {
super();
}
public Message(String id, String text, String author, Date created) {
super();
this.id = id;
this.text = text;
this.author = author;
this.created = created;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public Date getCreated() {
return created;
}
public void setCreated(Date created) {
this.created = created;
}
}
Run Code Online (Sandbox Code Playgroud)
控制器类:
package com.joydeep.springboot;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloCntrl {
@Autowired
Test1 test;
@RequestMapping("/hello")
public String sayHi(){
return "Hi";
}
}
Run Code Online (Sandbox Code Playgroud)
初始化程序类:
package com.joydeep.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class CourseAPIStarter {
public static void main(String[] args) {
SpringApplication.run(CourseAPIStarter.class);
}
}
Run Code Online (Sandbox Code Playgroud)
pom.xml中:
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>io.springboot</groupId>
<artifactId>rest-course-api</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Rest service course API</name>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
在上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为'helloCntrl'的bean时出错:通过字段'test'表示的不满意的依赖性; 嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有'com.joydeep.springboot.Test1'类型的限定bean可用:预计至少有1个bean有资格作为autowire候选者.依赖注释{@ org.springframework.beans.factory.annotation.Autowired(required = true)}
我所指的例子来自这个链接.
https://spring.io/guides/gs/accessing-data-jpa/
Run Code Online (Sandbox Code Playgroud)
Ang*_*man 12
您不需要添加@Repository注释Test1.将这3个注释放在你的CourseAPIStarter课堂上,你的应用程序将像黄油中的热刀一样运行.
@ComponentScan(basePackages={"com.joydeep.springboot"})
@EntityScan(basePackages={"com.joydeep.springboot.vo"})
@EnableJpaRepositories(basePackages={"com.joydeep.springboot"})
Run Code Online (Sandbox Code Playgroud)
@ComponentScan 将扫描您的对象,并将其注册到Spring.
@EnableJpaRepositories 将允许您的所有Spring JPA存储库在您的应用程序中使用.
@EntityScan:当您@Entity在模型对象类上添加注释时,Spring将假定一个表存在名称Message.因此,要在Spring中注册此类,因为Entity您需要使用此注释.
| 归档时间: |
|
| 查看次数: |
6196 次 |
| 最近记录: |