[SPRING] Spring : 하나의 Entity에서 2 개의 저장소
SPRINGSpring : 하나의 Entity에서 2 개의 저장소
내가 필요한 것은 단일 실체에서 생성 된 2 개의 리파지토리입니다 :
interface TopicRepository implements ReactiveCrudRepository<Topic, String>
interface BackupTopicRepository implements ReactiveCrudRepository<Topic, String>
어떻게 가능할까요? 지금은 하나만 생성됩니다.
해결법
-
==============================
1.이것이 당신이하는 방법입니다.
이것이 당신이하는 방법입니다.
@Configuration @ConfigurationProperties(prefix = "mongodb.topic") @EnableMongoRepositories(basePackages = "abc.def.repository.topic", mongoTemplateRef = "topicMongoTemplate") @Setter class TopicMongoConfig { private String host; private int port; private String database; @Primary @Bean(name = "topicMongoTemplate") public MongoTemplate topicMongoTemplate() throws Exception { final Mongo mongoClient = createMongoClient(new ServerAddress(host, port)); return new MongoTemplate(mongoClient, database); } private Mongo createMongoClient(ServerAddress serverAddress) { return new MongoClient(serverAddress); } }
다른 구성
@Configuration @ConfigurationProperties(prefix = "mongodb.backuptopic") @EnableMongoRepositories(basePackages = "abc.def.repository.backuptopic", mongoTemplateRef = "backupTopicMongoTemplate") @Setter class BackupTopicMongoConfig { private String host; private int port; private String database; @Primary @Bean(name = "backupTopicMongoTemplate") public MongoTemplate backupTopicMongoTemplate() throws Exception { final Mongo mongoClient = createMongoClient(new ServerAddress(host, port)); return new MongoTemplate(mongoClient, database); } private Mongo createMongoClient(ServerAddress serverAddress) { return new MongoClient(serverAddress); } }
TopicRepository 및 BackuoTopicRepository는 각각 abc.def.repository.topic 및 abc.def.repository.backuptopic에 있어야합니다.
또한 속성이나 yml 파일에 이러한 속성을 정의해야합니다.
mongodb: topic: host: database: port: backuptopic: host: database: port:
마지막으로 mongo에 대한 springboot 자동 구성을 비활성화합니다.
@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
from https://stackoverflow.com/questions/48770121/spring-2-repositories-out-of-a-single-entity by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] @SpringBootConfiguration과 @Configuration의 차이점은 무엇입니까? (0) | 2019.07.10 |
---|---|
[SPRING] 스프링 부트는 새로운 스케줄 작업을 동적으로 추가합니다. (0) | 2019.07.09 |
[SPRING] 봄 부츠 휴식 프로젝트에 권장되는 프로젝트 구조는 무엇입니까? (0) | 2019.07.08 |
[SPRING] @SpringBootConfiguration과 @Configuration의 차이점 (0) | 2019.07.08 |
[SPRING] org.springframework.boot를 찾을 수 없습니다 : spring-boot-starter-velocity (0) | 2019.07.08 |