#java #spring
#java #spring
Вопрос:
У меня есть несколько проектов, использующих spring 2.1.3, и я хотел бы позволить им совместно использовать некоторые объекты вместе со своими репозиториями.
Пример репозитория:
package com.my.otherproject.pojos;
import org.bson.types.ObjectId;
import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
import org.springframework.stereotype.Repository;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@Repository
public interface UserDataRepository extends ReactiveMongoRepository<UserData, ObjectId> {
Mono<UserData> findByEmail(String name);
}
Он otherproject
включен в gradle
compile project(':pojobase')
И я добавил
@ComponentScan(basePackages = {"com.my.firstproject", "com.my.otherproject"})
в @Configuration
файл.
Когда я пытаюсь использовать вышеуказанный репозиторий в своем основном проекте, я получаю сообщение об ошибке
Описание:
Для параметра 0 конструктора в com.my.firstproject.controllers.CustomerController требуется компонент типа ‘com.my.otherproject.pojos.UserDataRepository’, который не удалось найти.
Экшен:
Рассмотрите возможность определения компонента типа ‘com.my.otherproject.pojos.UserDataRepository’ в вашей конфигурации.
Возможно ли каким-то образом использовать объекты и репозитории в моем приложении Spring?
Ответ №1:
Дополнительный @EnableReactiveMongoRepositories(basePackages = {"com.my.otherproject.pojos"})
Main
класс
@EnableReactiveMongoRepositories(basePackages = {"com.my.otherproject.pojos"})
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class);
}
}
Комментарии:
1. Я использую
ReactiveMongo
, поэтому JPA не работает. Но добавление@EnableReactiveMongoRepositories(basePackages = {"com.my.otherproject.pojos"})
соответственно работает отлично. Спасибо…