Skip to content

Commit

Permalink
fix: DynamoDbConfig TableNameResolver 설정 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
jihwan2da committed Dec 15, 2023
1 parent d4dd2dc commit 25119f0
Showing 1 changed file with 27 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,47 @@ import com.amazonaws.auth.BasicAWSCredentials
import com.amazonaws.client.builder.AwsClientBuilder
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder
import com.amazonaws.services.dynamodbv2.datamodeling.ConversionSchemas
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTypeConverterFactory
import org.socialsignin.spring.data.dynamodb.repository.config.EnableDynamoDBRepositories
import org.springframework.beans.factory.annotation.Value
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.context.annotation.Primary

@Configuration
@EnableDynamoDBRepositories(basePackages = ["gloddy.dynamodb.notification", "gloddy.dynamodb.fcmToken"])
@EnableDynamoDBRepositories(basePackages = ["gloddy.dynamodb.notification", "gloddy.dynamodb.fcmToken"], dynamoDBMapperConfigRef = "dynamoDBMapperConfig")
class DynamoDBConfig(
@Value("\${amazon.dynamodb.endpoint}") private val endpoint: String,
@Value("\${amazon.aws.accessKey}") private val accessKey: String,
@Value("\${amazon.aws.secretKey}") private val secretKey: String,
@Value("\${amazon.aws.region}") private val region: String
@Value("\${amazon.aws.region}") private val region: String,
@Value("\${stage}") private val stage: String
) {

@Primary
@Bean
fun dynamoDBMapper(amazonDynamoDB: AmazonDynamoDB): DynamoDBMapper {
return DynamoDBMapper(amazonDynamoDB, DynamoDBMapperConfig.DEFAULT)
return DynamoDBMapper(
amazonDynamoDB,
dynamoDBMapperConfig()
)
}

@Bean
fun dynamoDBMapperConfig(): DynamoDBMapperConfig {
return DynamoDBMapperConfig.builder()
.withSaveBehavior(DynamoDBMapperConfig.SaveBehavior.UPDATE)
.withConsistentReads(DynamoDBMapperConfig.ConsistentReads.EVENTUAL)
.withPaginationLoadingStrategy(DynamoDBMapperConfig.PaginationLoadingStrategy.LAZY_LOADING)
.withTableNameResolver(tableNameResolver())
.withBatchWriteRetryStrategy(DynamoDBMapperConfig.DefaultBatchWriteRetryStrategy.INSTANCE)
.withBatchLoadRetryStrategy(DynamoDBMapperConfig.DefaultBatchLoadRetryStrategy.INSTANCE)
.withTypeConverterFactory(DynamoDBTypeConverterFactory.standard())
.withConversionSchema(ConversionSchemas.V2_COMPATIBLE)
.build()
}

@Bean
Expand All @@ -41,4 +61,8 @@ class DynamoDBConfig(

@Bean
fun awsCredentials() = BasicAWSCredentials(accessKey, secretKey)

@Bean
@Primary
fun tableNameResolver() = TableNameResolver(stage)
}

0 comments on commit 25119f0

Please sign in to comment.