【发布时间】:2020-07-22 15:20:31
【问题描述】:
我正在从外部服务导入 JAR。这是服务类代码:
private final PermissionsRepository permissionsRepository;
@Autowired
public PermissionsServiceImpl(PermissionsRepository permissionsRepository) {
this.permissionsRepository = permissionsRepository;
}
public Collection<Permission> findAll() {
System.out.println("inside get all permissions");
return permissionsRepository.findAll();
}
虽然存储库是一个常规的 JPA 接口
public interface PermissionsRepository extends JpaRepository<Permission, PermissionTable> {}
我正在尝试在其他程序中使用“findAll”方法,因此我从上述项目创建了一个 JAR,将其导入,但我无法初始化服务 bean,因为我无法通过存储库作为论据。最好的方法是什么?
这是我目前在我的 BeanConfig 类中的内容(在导入 JAR 的 其他项目 中):
@Configuration
@EntityScan(basePackageClasses = {PermissionsRepository.class})
public class BeansConfig {
// need to create permissionRepository
@Bean
public PermissionsService permissionsService() {
return new PermissionsServiceImpl(???);
}
}
谢谢
【问题讨论】:
-
您可能希望将您的存储库注释为存储库并相应地对其进行扫描。 EntityScan 扫描实体,也不扫描存储库。
-
我认为它不会解决我的问题,因为我需要做的是弄清楚如何在导入项目上创建一个存储库实例(JPA 接口)。一旦我能够做到这一点,一切都会正常。
-
Spring Boot 数据 jpa 存储库的全部内容是 Spring Boot 根据它们的注解自动实例化它们,并且可以通过 @Autowired 获取。请阅读有关 Minimal, Complete, and Verifiable Examples 的信息并查看 spring 数据文档。
标签: java spring spring-boot spring-data-jpa javabeans