대규모 Spring Data 계열의 일부인 Spring Data JDBC를 사용하면 애플리케이션에 JDBC 기반 저장소를 쉽게 구현할 수 있습니다. Spring Data JDBC는 PostgreSQL 및 기타 데이터베이스 시스템을 지원합니다. 애플리케이션이 한 데이터베이스 시스템에서 다른 데이터베이스 시스템으로 쉽게 포팅할 수 있게 하는 데이터베이스와 애플리케이션 사이에 추상화 레이어를 추가합니다.
Spanner PostgreSQL 언어 데이터베이스용 Spring Data JDBC 설정
Spring Data JDBC 및 Spanner JDBC 드라이버에 포함된 표준 PostgreSQL 언어를 사용하여 Spanner PostgreSQL 언어 데이터베이스를 Spring Data JDBC와 통합할 수 있습니다.
이 통합에서는 PGAdapter를 사용할 필요가 없습니다.
언어 구성
Spring Data JDBC는 Spring Data에서 데이터 소스로 구성된 JDBC 드라이버를 기준으로 사용되는 데이터베이스 언어를 선택합니다. Spanner JDBC 드라이버가 사용될 때 Spring Data JDBC가 PostgreSQL 언어를 사용하도록 하려면 애플리케이션에 Spring 구성 클래스를 추가해야 합니다.
@Configuration
public class JdbcConfiguration extends AbstractJdbcConfiguration {
/** Override the dialect auto-detection, so it also returns PostgreSQL for Spanner. */
@Override
public Dialect jdbcDialect(@Nonnull NamedParameterJdbcOperations operations) {
if (isCloudSpannerPG(operations.getJdbcOperations())) {
return PostgresDialect.INSTANCE;
}
return super.jdbcDialect(operations);
}
/** Returns true if the current database is a Spanner PostgreSQL-dialect database. */
public static boolean isCloudSpannerPG(JdbcOperations operations) {
return Boolean.TRUE.equals(
operations.execute(
(ConnectionCallback<Boolean>)
connection ->
connection.isWrapperFor(CloudSpannerJdbcConnection.class)
&& com.google.cloud.spanner.Dialect.POSTGRESQL.equals(
connection.unwrap(CloudSpannerJdbcConnection.class).getDialect())));
}
}
예시를 보려면 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 PostgreSQL 언어 데이터베이스에 연결하도록 application.properties
를 구성합니다.
# This profile uses a Spanner PostgreSQL database.
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 PostgreSQL을 사용하는 Spring Data JDBC 샘플 애플리케이션을 참조하세요.
다음 단계
- Spring Data JDBC 자세히 알아보기
- GitHub 문제를 제출하여 Spanner JDBC 드라이버에 대한 버그를 보고하거나 질문하기