具有自己的实体和存储库的 Spring Boot 启动器

问题描述

我想创建一个 spring boot starter 模块,它有自己的实体和存储库。但是如何在自动配置中将实体附加到 spring 上下文?使用此模块的 spring boot 服务将有自己的实体,因此必须附加。

我试过这样。

public class StarterEntityRegistrar implements ImportBeanDeFinitionRegistrar {
  @Override
  public void registerBeanDeFinitions(AnnotationMetadata importingClassMetadata,BeanDeFinitionRegistry registry) {
    AutoConfigurationPackages.register(registry,MyEntity.class.getPackageName());
  }

}

自动配置中我添加了这个

@Import(StarterEntityRegistrar.class)

当我根据这个 starter 模块启动我的 Spring Boot 应用程序时,我可以看到调用了 register 方法,但仍然没有选择实体。

我该怎么做?

解决方法

好的在我的自动配置类中

@AutoConfigureAfter({JpaRepositoriesAutoConfiguration.class})

我改成

@AutoConfigureBefore({JpaRepositoriesAutoConfiguration.class})

然后就成功了。