@Bean @ConditionalOnMissingBean public SpannerOptions spannerOptions(SessionPoolOptions sessionPoolOptions) { Builder builder = SpannerOptions.newBuilder() .setProjectId(this.projectId) .setHeaderProvider(new UserAgentHeaderProvider(this.getClass())) .setCredentials(this.credentials); if (this.numRpcChannels >= 0) { builder.setNumChannels(this.numRpcChannels); } if (this.prefetchChunks >= 0) { builder.setPrefetchChunks(this.prefetchChunks); } builder.setSessionPoolOption(sessionPoolOptions); return builder.build(); }
public SpannerAccessor connectToSpanner() { SpannerOptions.Builder builder = SpannerOptions.newBuilder(); if (getProjectId() != null) { builder.setProjectId(getProjectId().get()); } if (getServiceFactory() != null) { builder.setServiceFactory(this.getServiceFactory()); } if (getHost() != null) { builder.setHost(getHost().get()); } String userAgentString = USER_AGENT_PREFIX + "/" + ReleaseInfo.getReleaseInfo().getVersion(); builder.setHeaderProvider(FixedHeaderProvider.create("user-agent", userAgentString)); SpannerOptions options = builder.build(); Spanner spanner = options.getService(); DatabaseClient databaseClient = spanner.getDatabaseClient( DatabaseId.of(options.getProjectId(), getInstanceId().get(), getDatabaseId().get())); BatchClient batchClient = spanner.getBatchClient( DatabaseId.of(options.getProjectId(), getInstanceId().get(), getDatabaseId().get())); DatabaseAdminClient databaseAdminClient = spanner.getDatabaseAdminClient(); return new SpannerAccessor(spanner, databaseClient, databaseAdminClient, batchClient); } }