Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring启动存储库未注册为有效bean_Spring_Spring Boot_Spring Data Jpa_Spring Data - Fatal编程技术网

Spring启动存储库未注册为有效bean

Spring启动存储库未注册为有效bean,spring,spring-boot,spring-data-jpa,spring-data,Spring,Spring Boot,Spring Data Jpa,Spring Data,Spring boot似乎不想将我的存储库注册为有效的bean:(下面是我看到的错误: Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.frustrated.stats.MyRepository' available: expected at least 1 bean which qualifies as autowire can

Spring boot似乎不想将我的存储库注册为有效的bean:(下面是我看到的错误:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.frustrated.stats.MyRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
根本原因似乎是:

o.s.c.a.ClassPathBeanDefinitionScanner   : Ignored because not a concrete top-level class: file [/Users/me/Code/my_app/my_service/build/classes/java/main/com/frustrated/stats/MyRepository.class]
我是否在某个地方配置了不正确的应用程序

这是我的档案:

MyRepository.java

package com.frustrated.stats;

@Repository
public interface MyRepository extends JpaRepository<StatsEvent, Long> {}
package com.frustrated.stats;

@Entity
public class StatsEvent { ... }
@SpringBootApplication
@ComponentScan(basePackages = { "com.frustrated" })
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class })
@EnableSpringDataWebSupport
public class Application extends SpringBootServletInitializer {
Application.java

package com.frustrated.stats;

@Repository
public interface MyRepository extends JpaRepository<StatsEvent, Long> {}
package com.frustrated.stats;

@Entity
public class StatsEvent { ... }
@SpringBootApplication
@ComponentScan(basePackages = { "com.frustrated" })
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class })
@EnableSpringDataWebSupport
public class Application extends SpringBootServletInitializer {
以下是我的包结构:

com:
  frustrated:
    - Application.java
    stats:
      - MyRepository.java
      - StatsEvent.java
尝试调试

在尝试了许多不同的注释之后,我认为简单地逐步完成注册过程可能会更有成效。我已经跟踪了代码,但似乎失败了:

正是
元数据.hasAnnotatedMethods(Lookup.class.getName())
错误,并导致我的存储库没有被实例化

还需要注意的是,my
StatEvent
也会被忽略,因为:

o.s.c.a.ClassPathBeanDefinitionScanner   : Ignored because not matching any filter: file [/Users/me/Code/my_app/my_service/build/classes/java/main/com/frustrated/stats/StatsEvent.class]

如果您有任何帮助,我们将不胜感激。

请尝试将此添加到您的应用程序上。类

@EnableJpaRepositories(basePackages = "com.frustrated.stats.MyRepository")
@ComponentScan("com.frustrated.stats.service") // if you have it
@EntityScan("com.frustrated.stats.entity") // of your entities

尝试将其添加到Application.class的顶部

@EnableJpaRepositories(basePackages = "com.frustrated.stats.MyRepository")
@ComponentScan("com.frustrated.stats.service") // if you have it
@EntityScan("com.frustrated.stats.entity") // of your entities

根据MyRepository扩展JPA存储库判断,您正在尝试使用Spring数据JPA,但您的已排除Hibernate和数据源的自动配置。除非您有一些Hibernate的手动配置或其他JPA提供程序,您还没有显示,否则对
JPA存储库的支持将被禁用,因为它需要JPA提供程序和数据源。

根据MyRepository扩展JPA存储库判断,您正在尝试使用Spring data JPA,但您的应用程序已排除Hibernate和数据源的自动配置。除非您有一些Hibernate的手动配置或其他JPA提供程序没有显示,
JPA存储库的支持。
将被禁用,因为它需要一个JPA提供程序和一个数据源。

@EnableJpaRepositories。根据
MyRepository
extensing
JpaRepository
,您正在尝试使用Spring数据JPA,但您已经排除了Hibernate的自动配置。您是否有一些Hibernate的手动配置或其他需要的JPA提供程序你还没有表现出来吗?@AndyWilkinson你(对我来说)很尴尬正确。想让您的评论成为我可以接受的答案吗?删除DataSource和JPA的排除项。@EnableJpaRepositories。根据
MyRepository
extending
JpaRepository
判断,您正在尝试使用Spring Data JPA,但您已经排除了Hibernate的自动配置。您有一些手动配置吗为Hibernate或其他您没有展示的JPA提供商打开?@AndyWilkinson您(对我来说)很尴尬正确。想让您的评论成为我可以接受的答案吗?删除DataSource的排除项,JPA做到了。我认为
@EntityScan
@ComponentScan
对于当前的注释和结构应该是不必要的,
@EnableJpaRepositories
似乎也没有帮助。但这些也是我认为的所有事情可能是原因!我认为@AndyWilkinson在他的评论中得到了它,但我认为
@EntityScan
@ComponentScan
对于当前的注释和结构应该是不必要的,
@enablejpareposities
似乎也没有帮助。但这些也是我认为可能是原因的所有事情!我认为@AndyWilk然而,英森在他的评论中得到了这一点