대규모 Spring Data 계열의 일부인 Spring Data JDBC를 사용하면 애플리케이션에서 JDBC 기반 저장소를 더욱 쉽게 구현할 수 있습니다. 애플리케이션이 한 데이터베이스 시스템에서 다른 데이터베이스 시스템으로 쉽게 포팅할 수 있게 하는 데이터베이스와 애플리케이션 사이에 추상화 레이어를 추가합니다.
Spanner GoogleSQL 언어 데이터베이스용 Spring Data JDBC 설정
애플리케이션에 Spanner GoogleSQL 언어를 추가하여 Spanner GoogleSQL 언어 데이터베이스와 Spring Data JDBC를 통합할 수 있습니다.
언어 구성
Spring Data JDBC는 Spring Data에서 데이터 소스로 구성된 JDBC 드라이버를 기반으로 사용하는 데이터베이스 언어를 선택합니다. Spanner JDBC 드라이버가 사용될 때 Spring Data JDBC에 GoogleSQL 언어를 사용하도록 지시하려면 애플리케이션에 언어 제공업체를 추가해야 합니다.
public class SpannerDialectProvider implements DialectResolver.JdbcDialectProvider {
@Override
public Optional<Dialect> getDialect(JdbcOperations operations) {
return Optional.ofNullable(
operations.execute((ConnectionCallback<Dialect>) SpannerDialectProvider::getDialect));
}
@Nullable
private static Dialect getDialect(Connection connection) throws SQLException {
DatabaseMetaData metaData = connection.getMetaData();
String name = metaData.getDatabaseProductName().toLowerCase(Locale.ENGLISH);
if (name.contains("spanner")) {
return SpannerDialect.INSTANCE;
}
return null;
}
}
이 언어 제공업체는 애플리케이션의 spring.factories
파일에 추가되어야 합니다.
org.springframework.data.jdbc.repository.config.DialectResolver$JdbcDialectProvider=org.springframework.data.jdbc.repository.config.DialectResolver.DefaultDialectProvider,com.google.cloud.spanner.sample.SpannerDialectProvider
예시를 보려면 GitHub에서 전체 작동하는 샘플 애플리케이션을 참조하세요.
종속 항목
프로젝트에서 Spring Data JDBC 및 Spanner JDBC 드라이버의 Apache Maven 종속 항목을 추가합니다.
<dependencies>
<!-- Spring Data JDBC -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<!-- Spanner JDBC driver -->
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-spanner-jdbc</artifactId>
</dependency>
<dependencies>
데이터 소스 구성
Spanner JDBC 드라이버를 사용하고 Spanner GoogleSQL 언어 데이터베이스에 연결하도록 application.properties
를 구성합니다.
spanner.project=my-project
spanner.instance=my-instance
spanner.database=spring-data-jdbc
spring.datasource.driver-class-name=com.google.cloud.spanner.jdbc.JdbcDriver
spring.datasource.url=jdbc:cloudspanner:/projects/${spanner.project}/instances/${spanner.instance}/databases/${spanner.database}
전체 샘플 애플리케이션
샘플 애플리케이션과 통합하려면 Spanner GoogleSQL을 사용하는 Spring Data JDBC 샘플 애플리케이션을 참조하세요.
다음 단계
- Spring Data JDBC 자세히 알아보기
- GitHub 문제를 제출하여 Spanner JDBC 드라이버에 대한 버그를 보고하거나 질문하기