Spring Boot Field需要一个找不到类型的bean

我正在通过JPA入门教程来解决Spring Boot的问题。

但是这些问题与我所遇到的有点不同。

结构体

java

|

helloWorld

|

web/ -- HelloWorldController

Application

Customer

CustomerRepository

ServletInitializer

如您所见,我所有与JPA相关的软件包都与我的应用程序文件处于同一级别。根据教程(https://spring.io/guides/gs/accessing-

data-jpa/),这应该可行

我的申请班

package helloWorld;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.boot.builder.SpringApplicationBuilder;

import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

import org.springframework.context.annotation.ComponentScan;

@SpringBootApplication

public class Application extends SpringBootServletInitializer {

public static void main(String[] args) {

SpringApplication.run(Application.class, args);

}

@Autowired

CustomerRepository customerRepository;

@Override

protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {

return application.sources(Application.class);

}

}

客户资料库

package helloWorld;

import org.springframework.data.repository.CrudRepository;

import java.util.List;

public interface CustomerRepository extends CrudRepository<Customer, Long> {

List<Customer> findByLastName(String lastName);

}

尝试使用时,@Autowired我收到

***************************

APPLICATION FAILED TO START

***************************

Description:

Field customerRepository in helloWorld.Application required a bean of type 'helloWorld.CustomerRepository' that could not be found.

Action:

Consider defining a bean of type 'helloWorld.CustomerRepository' in your configuration.

另外,添加scanBasePackages={"helloWorld"})对您@SpringBootApplication没有帮助,从我阅读的内容中也不需要添加。

<?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>helloWorld.com.example</groupId>

<artifactId>helloWorld</artifactId>

<version>0.0.1-SNAPSHOT</version>

<packaging>war</packaging>

<name>fireCommerce</name>

<description>Demo project for Spring Boot</description>

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.0.4.RELEASE</version>

<relativePath/> <!-- lookup parent from repository -->

</parent>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<java.version>1.8</java.version>

</properties>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-data-jpa</artifactId>

</dependency>

<dependency>

<groupId>com.h2database</groupId>

<artifactId>h2</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-devtools</artifactId>

<scope>runtime</scope>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-tomcat</artifactId>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

</dependencies>

<build>

<plugins>

<plugin>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-maven-plugin</artifactId>

</plugin>

<plugin>

<groupId>com.microsoft.azure</groupId>

<artifactId>azure-webapp-maven-plugin</artifactId>

<version>1.1.0</version>

<configuration>

<resourceGroup>maven-projects</resourceGroup>

<appName>${project.artifactId}-${maven.build.timestamp}</appName>

<region>westus</region>

<javaVersion>1.8</javaVersion>

<deploymentType>war</deploymentType>

</configuration>

</plugin>

</plugins>

</build>

</project>

链接到github项目

回答:

您将排除JPA存储库的自动配置。删除其中的代码行application.properties,让Spring制作CustomerRepository一个bean并对其进行配置。

spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration

以上是 Spring Boot Field需要一个找不到类型的bean 的全部内容, 来源链接: utcz.com/qa/402332.html

回到顶部