当前位置: 首页 > 知识库问答 >
问题:

Spring Boot无法为JAR文件启用JPA存储库

邰德业
2023-03-14

嗨,我有两个maven项目(不是模块),在第一个maven项目中,我有一个数据jpa存储库

用户存储库

package com.massoudafrashteh.code.spring.boot.dans.repository;
public interface UserRepository extends JpaRepository<User, Long> {}

UserServiceImpl

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserRepository userRepository;
}

然后将此项目导出到一个jar,并附加到另一个引导应用程序,我在里面有这样的配置

@Configuration
@EnableAutoConfiguration
@ComponentScan(basePackages = "com")
@EntityScan(basePackages ="com.massoudafrashteh.code.spring.boot.dans.domain")
@EnableJpaRepositories("com.massoudafrashteh.code.spring.boot.dans.repository")
public class Config {
    @Bean
    public UserService userService() {
        return new UserServiceImpl();
    }
}    

但Boot找不到我的存储库并说

考虑在配置中定义com.massoudafrashteh.code.spring.boot.dans.repository.UserRepository类型的bean

在两个项目中都使用了“spring boot starter data jpa 1.5.3.RELEASE”。我认为问题在于我有一个@Bean for UserServiceImpl,spring在运行时找不到数据JPA的实现!

更新1:当我测试这两个maven模块时,它们都能工作!但它们不能作为jar文件使用!

Update2:没有其他配置,我只是使用HSQLDB的Spring-Boot管理数据库。

Update3:因为我应该使用一个引导项目作为依赖项。请看看两个项目,Spring-rest-test是可执行项目,https://gitlab.com/massoud.afrashteh/spring-boot-template.谢谢

共有1个答案

郎魁
2023-03-14

您的UserServiceImpl类已经用@Service annotation定义,它也有一些自动关联的bean。

为什么不将UserServiceImpl自动连接到所需的类中,而不是自己创建一个新实例,并使用@bean on方法将其配置为bean呢。

 类似资料:
  • 我有一个springboot项目,为了执行请求,我正在连接到我的mysql数据库。我有一个实体ExportBatch: 我在ExportBatchRepository中定义了一个新方法: 在我的控制器里,我是这样做的: 当我调用“/GetLastBatchsProblemes”时会遇到这个异常:java.lang.ClassCastException:[Ljava.lang.Object;不能强制

  • 问题内容: 美好的一天! 我创建了jar文件(使用Netbeans),但无法启动。该项目使用lwjgl库。在我的IDE中,它运行良好。 我使用下一个命令: 答案是: 其他项目(没有此库)可以正常工作。我该如何解决这个错误? 我的清单是: 问题答案: 由于您需要将本地文件放在jar旁边,并通过’-Djava.library.path’参数指向它们,因此它无法按照您当前尝试的方式工作。 如果您只想要一

  • 以下是我的模型:- 我的存储库和服务:- 控制器:- org.springframework.beans.factory.beanCreationException:创建类路径资源[org/springframework/boot/autocconfigure/orm/jpa/hibernatejpaconfiguration.class]中定义的名为“Entity ManagerFactory”

  • 我在eclipse中有一个项目,它使用ant来编译和jar类文件和引用的jar。使用eclipse中的默认java builder生成的类文件生成的jar文件工作良好,但是当使用ant编译源代码然后jar结果时,在目标构建上执行java-jar时会出现错误“错误:尝试打开文件时出现意外错误”结果。有人知道我做错了什么吗?下面是构建xml内容。下面是我传递给ant的参数 -dintouchv.src

  • 我正在开发一个迁移软件,它将使用来自REST服务的未知数据。 我已经考虑过使用MongoDB,但我决定不使用它,而是使用PostgreSQL。 读完本文后,我试图在我的SpringBoot应用程序中使用SpringJPA实现它,但我不知道在我的实体中映射。 我试过了,但什么也不懂! 这里就是我所在的地方: 和... 下表: 我该怎么做? 注意:我不想/不需要一个实体来工作。我的JSON将永远是St