Springboot要求jarepository接口在运行前由一个类实现



我是Springboot的新手,目前正在尝试重新创建来自Baeldung的示例,其中使用React作为前端()构建了一个简单的全栈项目。从我目前收集到的信息来看,当使用JpaRepository接口创建存储库时,Spring基本上会在后台创建一个类,然后我可以从JpaRepository调用这些方法。

然而,在我自己尝试之后,当我尝试启动我的春季启动应用程序时,我得到了这个错误:No qualifying bean of type 'com.example.repository.ClientRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

最后我使用了一个类实现来运行应用程序。这是我的pom.xml:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.4.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.4.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.4.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.200</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.6.6</version>
</dependency>

我的存储库接口:

package com.example.repository;
import com.example.model.Client;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
public interface ClientRepository extends JpaRepository<Client, Long> {
}

控制器类:

@RestController
@RequestMapping("/clients")
@EnableJpaRepositories
@SpringBootApplication(scanBasePackages = {"com.example","com.example.repository"})
public class ClientsController {
private final ClientRepository clientRepository;
public ClientsController(ClientRepository clientRepository){
this.clientRepository = clientRepository;
}
*** Remaining API methods ***

我必须使用jparerepository的类实现来启动Springboot应用程序。我的问题是:我是否必须继续并完全实现我自己的数据访问层,因为默认的jparerepository似乎还不够?

您必须为SpringBoot添加@Repository注释以创建Bean

您必须从ClientsController

中删除以下内容
@EnableJpaRepositories
@SpringBootApplication(scanBasePackages = {"com.example","com.example.repository"})

并确保将@SpringBootApplication添加到应用程序的入口点。

相关内容

最新更新