#java #spring #spring-boot #kotlin
#java #весна #пружинный ботинок #kotlin
Вопрос:
У library
меня есть некоторые Entities
, Repositories
которые я хочу включить в свой проект spring-boot.
Это пример @Confituration
класса из library
package com.mylibrary.config
@Configuration
@ComponentScan("com.mylibrary.service")
@EntityScan("com.mylibrary.repo")
@EnableJpaRepositories("com.mylibrary.repo")
@ConditionalOnClass(value = [DataSource::class])
open class MyCustomConfigFromLibrary
Таким образом, я пытаюсь включить MyCustomConfigFromLibrary
его в свой проект spring-boot
package com.mainapp
@SpringBootApplication
@Import(value = [MyCustomConfigFromLibrary::class])
class Application
Но когда я запускаю свое приложение spring-boot, оно не хочет сканировать Repositories
и Entities
сам мой проект spring-boot. Он сканирует его Components
, но не его Repositories
и Entities
. Repositories
и Entities
это сканы только с моего library
.
Итак, чтобы исправить это, я нашел решение, которое мне do not
нравится! Я просто явно добавляю @EntityScan
и @EnableJpaRepositories
в свой Application
класс.
package com.mainapp
@SpringBootApplication
@Import(value = [MyCustomConfigFromLibrary::class])
@EntityScan
@EnableJpaRepositories
class Application
Комментарии:
1. Вы можете попробовать добавить автоматическую настройку spring в свою библиотеку, а затем добавить ее в свой проект в качестве spring starter.
Ответ №1:
Насколько я знаю, если вы используете свой собственный пользовательский schema.sql и / или data.sql, то Spring Boot не обнаруживает репозитории или объекты JPA. Если вы хотите, чтобы ваше приложение сканировало эти классы, попробуйте удалить пользовательский schema.sql / data.sql из папки ресурсов.
В приложении на основе JPA вы не должны использовать как spring.jpa.hibernate.ddl-auto, так и schema.sql. Обязательно отключите spring.jpa.hibernate.ddl-auto, если вы используете schema.sql.
Ссылка — https://walkingtechie.blogspot.com/2018/12/execute-schema-and-data-sql-on-startup-spring-boot.html