conditionalonmissingbean与enablejparepositories的组合

b09cbbtk  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(263)

我使用了以下配置:

@Profile("database")
@Configuration
@EnableJpaRepositories(basePackages = "com.example.repository")
public class RepositoryConfig {
}
public interface MyRepositoryInterface extends PagingAndSortingRepository<MyEntity, Long> {
 // ...
}

它创造了一个 PagingAndSortingRepository 存储库。如您所见,只有在“数据库”配置文件处于活动状态时才会创建此配置文件。有几个其他的复制被激活与其他配置文件。
现在我想创建一条对话错误消息,以防没有创建存储库(例如,使用错误的配置文件)。
第一个想法是: @Profile("!database & !filesystem ...") 但是,这对于许多配置文件来说太麻烦,需要维护。
因此,下一个想法是:

@Configuration
public class OnMissingRepository {

    @ConditionalOnMissingBean(MyRepositoryInterface.class)
    @Bean
    public MyRepositoryInterface missingBean() {
        throw new IllegalArgumentException("You forgot to specify a profile");
    }
}

不幸的是, @EnableJpaRepositories 似乎直到之后才创建存储库bean @ConditionalOnMissingBean 已经过评估。我每次都有上述例外。
有没有办法在这里实现这一点?
谢谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题