没有找到符合依赖关系的类型为[Repository]的bean:预期至少找到一个合格作为自动装配的bean

IT小君   2023-10-23T23:11:41
当前会话内容过长,请精简输入或新开对话,以便我们更好地为您解答!
评论(2)
IT小君

您自己实现的WebApplicationInitializer和继承AbstractAnnotationConfigDispatcherServletInitializer的实现是不同的。它们的行为不同是因为您没有注册您自定义的ApplicationContextInitializer。如何注册ApplicationContextInitializerjavadoc中有说明(注意有2个方法可以设置ApplicationContextInitializer的集合)。

public class AppInitialzer extends AbstractAnnotationConfigDispatcherServletInitializer {

    ...    

    protected ApplicationContextInitializer<?>[] getRootApplicationContextInitializers() {
        return new ApplicationContextInitializer[] { new SpringAppContInit() } ;
    }
}

然而,那个ApplicationContextInitializer实际上并没有添加任何不能通过简单设置环境或系统属性来完成的功能。

spring.profiles.active=SQLDev

如果您这样做,您就不需要那个初始化部分了。

我还坚信您的@EnableJpaRepositories不在正确的类上,您想要启用它们不应该依赖于您的配置文件。

2023-10-23T23:12:18   回复
IT小君

@ComponentScan(basePackages = "基础包") @EntityScan(basePackages ="基础包") @EnableJpaRepositories(basePackages = "基础包")

使用此注解,如果使用spring-data-jpa,则扩展CrudRepository或PagingAndSortingRepository而不是JpaRepository。在TestController中给出如下的自动装配:

@Autowired(required = true) CategoryRepository catRepo; 同时在Category中检查id的类型是否为BigDecimal

2023-10-23T23:12:30   回复