Java 一个JAR中的Spring JPA存储库不能用于另一场战争
我有一个非常简单的SpringJPA存储库,它被打包到一个JAR中并存储在本地maven存储库中。 我可以在单元测试和一个小的主测试例程中使用JPA存储库。它自动连线,没有任何问题。 以下是我的JPA存储库的定义:Java 一个JAR中的Spring JPA存储库不能用于另一场战争,java,spring,jpa,jar,war,Java,Spring,Jpa,Jar,War,我有一个非常简单的SpringJPA存储库,它被打包到一个JAR中并存储在本地maven存储库中。 我可以在单元测试和一个小的主测试例程中使用JPA存储库。它自动连线,没有任何问题。 以下是我的JPA存储库的定义: public interface TestRepo extends CrudRepository<Seminar , Integer > { List<Seminar> findAll(); @Autowired TestRepo testRepo; 我得
public interface TestRepo extends CrudRepository<Seminar , Integer > {
List<Seminar> findAll();
@Autowired
TestRepo testRepo;
我得到一个运行时错误,没有定义合适的bean。其他bean也可以工作——但一旦它进入JPA存储库,它就不工作了
我的意思是,当然你不能@Autowire一个接口——在战争中,当我调试它时,ApplicationContext中没有JPA存储库bean——JAR中的所有其他bean都在那里
知道问题出在哪里吗?您是否在web应用程序的spring配置中导入了jar的applicationContext.xml文件?如果您不知道,那么webapp对这种配置一无所知,也不会神奇地配置spring-data。不-我没有将applicationContext.xml从JAR导入WAR。如何导入applicationContext.xml和Java配置类?那么它只是另一个包含类的库。它包含的applicationContext.xml文件没有被任何人使用。问题是:JAR的applicationContext.xml中定义的所有其他服务都可以从WAR访问。只有JPA存储库在运行时不可注入。这可能是因为您的实际webapp spring配置配置为扫描定义服务的包,但未配置为使用spring-data-JPA。您是否在web应用程序的spring配置中导入了jar的applicationContext.xml文件?如果您不知道,那么webapp对这种配置一无所知,也不会神奇地配置spring-data。不-我没有将applicationContext.xml从JAR导入WAR。如何导入applicationContext.xml和Java配置类?那么它只是另一个包含类的库。它包含的applicationContext.xml文件没有被任何人使用。问题是:JAR的applicationContext.xml中定义的所有其他服务都可以从WAR访问。只有JPA存储库在运行时是不可注入的。这可能是因为您的实际webapp spring配置配置为扫描定义了服务的包,但没有配置为使用spring数据JPA。
@Autowired
TestRepo testRepo;