У меня есть настройка проекта, где общий модуль (JPA.jar) содержит конфигурацию Spring JPA.
@Configuration
@EnableJpaRepositories({"com.db.jpa.repository"})
@EnableTransactionManagement
public class Jpa {
// ...
}
Я намереваюсь вызвать конфигурацию из веб-службы (весенняя загрузка) и получить конфигурацию, импортирующую конфигурацию JPA из JPA.jar.
@Configuration
@Import(com.db.config.Jpa.class)
public class JpaApp {
}
Это происходит со следующей ошибкой:
Caused by: java.io.FileNotFoundException: class path resource [com/db/config/Jpa.class] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:180)
at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:51)
at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:103)
at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.createMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:88)
at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.getMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:75)
at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:81)
at org.springframework.context.annotation.ConfigurationClassParser.asSourceClass(ConfigurationClassParser.java:731)
at org.springframework.context.annotation.ConfigurationClassParser$SourceClass.getRelated(ConfigurationClassParser.java:1007)
at org.springframework.context.annotation.ConfigurationClassParser$SourceClass.getAnnotationAttributes(ConfigurationClassParser.java:988)
at org.springframework.context.annotation.ConfigurationClassParser.collectImports(ConfigurationClassParser.java:536)
at org.springframework.context.annotation.ConfigurationClassParser.getImports(ConfigurationClassParser.java:509)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:300)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:245)
at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:635)
... 40 more
Невозможно найти какую-либо документацию, которая говорит, что это незаконно для @Import
Spring. Однако я вижу, что это сделано для ресурсов с @ImportResource
, используя префикс classpath.
Я могу включить набор конфигов для каждого компонента веб-сервиса, используя обычные модели JPA и репозитории, но мне просто интересно, возможно ли агрегирование @Configuration(s)
, в частности, с использованием @Import
из jar зависимостей.
- Возможно ли это?
- Если это незаконно, есть ли какое-либо объяснение этому.
Заранее спасибо.