스프링 부트 + 멀티 테넌시(Multi-tenancy)가 포함된 스프링 데이터
시스템의 각 클라이언트가 자체 개인 데이터베이스에 연결할 수 있도록 MultiTenant Connection Provider를 사용하도록 Spring Boot를 구성할 수 있습니까?
특히 멀티 테넌시(Multi-tenancy)에 대한 내장 최대 절전 모드 지원을 사용하려고 합니다.
다음은 제가 추구하는 구성의 예입니다. 하지만 Spring Boot 설정에서 이 기능을 사용하는 방법을 알 수 없습니다.
이 속성을 에 추가해 보았습니다.application.properties
:
spring.jpa.hibernate.multiTenancy=DATABASE
spring.jpa.hibernate.tenant_identifier_resolver=com.mystuff.MyCurrentTenantIdentifierResolver
spring.jpa.hibernate.multi_tenant_connection_provider=com.mystuff.MyMultiTenantConnectionProviderImplX
저는 또한 제 자신의 코드를 작성해 보았습니다.CurrentTenantIdentifierResolver
그리고.MultiTenantConnectionProvider
그리고 내 메인 @Configuration bean에서 이것들을 제공해 보았습니다.
@Bean
public CurrentTenantIdentifierResolver currentTenantIdentifierResolver() {
return new CurrentTenantIdentifierResolver() {
public String resolveCurrentTenantIdentifier() {
// this is never called ...
}
public boolean validateExistingCurrentSessions() {
// this is never called ...
}
};
}
@Bean
public MultiTenantConnectionProvider multiTenantConnectionProvider() {
return new AbstractMultiTenantConnectionProvider() {
protected ConnectionProvider getAnyConnectionProvider() {
// this is never called ...
}
protected ConnectionProvider selectConnectionProvider(String s) {
// this is never called ...
}
};
}
이 중 어떤 것도 영향을 미치지 않는 것 같습니다. 따라서 이러한 멀티 테넌트(Multi-tenant) 클래스를 사용하기 위해 spring-boot/spring-data를 가져오는 방법이 정말 문제입니다.
도와주셔서 감사합니다!
정의되지 않은 JPA/Hibernate 속성은 다음을 사용하여 설정할 수 있습니다.spring.jpa.properties
의 재산.application.properties
.
연결하는 샘플에는 멀티테넌시(Multi-tenancy)에 대한 세 가지 속성이 있습니다.
<prop key="hibernate.multiTenancy">SCHEMA</prop>
<prop key="hibernate.tenant_identifier_resolver">com.webapp.persistence.utility.CurrentTenantContextIdentifierResolver</prop>
<prop key="hibernate.multi_tenant_connection_provider">com.webapp.persistence.utility.MultiTenantContextConnectionProvider</prop>
Spring Boot로 변환된 속성은 다음과 같습니다.application.properties
파일.
spring.jpa.properties.hibernate.multiTenancy=SCHEMA
spring.jpa.properties.hibernate.tenant_identifier_resolver=com.mystuff.MyCurrentTenantIdentifierResolver
spring.jpa.properties.hibernate.multi_tenant_connection_provider=com.webapp.persistence.utility.MultiTenantContextConnectionProvider
귀하의 상황에 맞게(질문에 명시된 바와 같이).
spring.jpa.properties.hibernate.multiTenancy=DATABASE
spring.jpa.properties.hibernate.tenant_identifier_resolver=com.webapp.persistence.utility.CurrentTenantContextIdentifierResolver
spring.jpa.properties.hibernate.multi_tenant_connection_provider=com.mystuff.MyMultiTenantConnectionProviderImplX
최대 절전 모드가 해당 인스턴스의 수명 주기를 제어하기 때문에 스프링 관리 콩에서는 작동하지 않습니다.
자세한 속성은 Spring Boot 참조 가이드를 참조하십시오.
언급URL : https://stackoverflow.com/questions/26898896/spring-boot-spring-data-with-multi-tenancy
'IT' 카테고리의 다른 글
빈 테이블에 인덱스를 만든 후 데이터를 삽입하거나 오라클에 데이터를 삽입한 후 고유 인덱스를 생성하시겠습니까? (0) | 2023.08.16 |
---|---|
버튼을 클릭할 때 jquery datables fnServerData를 트리거하여 AJAX를 통해 테이블을 업데이트하려면 어떻게 해야 합니까? (0) | 2023.08.16 |
날짜를 각도 2에서 이 'yyyy-MM-dd' 형식으로 변환하는 방법 (0) | 2023.08.16 |
지정된 프로젝트에 대해 올바른 ID(이름 및 이메일)를 사용하도록 GIT에 지시하는 방법은 무엇입니까? (0) | 2023.08.16 |
Powershell - 재부팅 후 스크립트 계속 (0) | 2023.08.11 |