@@ -129,7 +129,16 @@ private void postProcess(BeanDefinitionBuilder builder, String repositoryName, S
129129 .computeIfAbsent (getBeanNameWithModulePrefix ("DynamoDBTemplate-" + dynamoDBRef ), ref -> {
130130 BeanDefinitionBuilder dynamoDBTemplateBuilder = BeanDefinitionBuilder
131131 .genericBeanDefinition (DynamoDBTemplate .class );
132+ // AmazonDynamoDB amazonDynamoDB, DynamoDBMapper dynamoDBMapper,
133+ // DynamoDBMapperConfig dynamoDBMapperConfig
132134 dynamoDBTemplateBuilder .addConstructorArgReference (dynamoDBRef );
135+ dynamoDBTemplateBuilder .addConstructorArgReference (this .dynamoDBMapperName );
136+
137+ if (StringUtils .hasText (dynamoDBMapperConfigRef )) {
138+ dynamoDBTemplateBuilder .addConstructorArgReference (dynamoDBMapperConfigRef );
139+ } else {
140+ dynamoDBTemplateBuilder .addConstructorArgReference (this .dynamoDBMapperConfigName );
141+ }
133142
134143 registry .registerBeanDefinition (ref , dynamoDBTemplateBuilder .getBeanDefinition ());
135144 return ref ;
@@ -138,9 +147,6 @@ private void postProcess(BeanDefinitionBuilder builder, String repositoryName, S
138147
139148 builder .addPropertyReference ("dynamoDBOperations" , dynamoDBOperationsRef );
140149
141- if (StringUtils .hasText (dynamoDBMapperConfigRef )) {
142- builder .addPropertyReference ("dynamoDBMapperConfig" , dynamoDBMapperConfigRef );
143- }
144150 }
145151
146152 if (!StringUtils .hasText (dynamoDBMappingContextRef )) {
@@ -184,6 +190,10 @@ private String registerEntity2DynamoDBTableSynchronizer(BeanDefinitionRegistry r
184190 }
185191
186192 private final Map <String , String > dynamoDBMappingContextProcessorCache = new ConcurrentHashMap <>();
193+
194+ private String dynamoDBMapperName ;
195+
196+ private String dynamoDBMapperConfigName ;
187197 private String registerDynamoDBMappingContextProcessor (BeanDefinitionRegistry registry ,
188198 String dynamoDBMappingContextRef ) {
189199 assert registry != null ;
@@ -226,15 +236,17 @@ public void registerBeansForRoot(BeanDefinitionRegistry registry,
226236 // Store for later to be used by #postProcess, too
227237 this .registry = registry ;
228238
239+ this .dynamoDBMapperConfigName = getBeanNameWithModulePrefix ("DynamoDBMapperConfig" );
240+ // TODO only if it doesn't exist
229241 BeanDefinitionBuilder dynamoDBMapperConfigBuiilder = BeanDefinitionBuilder
230242 .genericBeanDefinition (DynamoDBMapperConfigFactory .class );
231- registry .registerBeanDefinition (getBeanNameWithModulePrefix ( "DynamoDBMapperConfig" ) ,
243+ registry .registerBeanDefinition (this . dynamoDBMapperConfigName ,
232244 dynamoDBMapperConfigBuiilder .getBeanDefinition ());
233245
246+ this .dynamoDBMapperName = getBeanNameWithModulePrefix ("DynamoDBMapper" );
234247 BeanDefinitionBuilder dynamoDBMapperBuilder = BeanDefinitionBuilder
235248 .genericBeanDefinition (DynamoDBMapperFactory .class );
236- registry .registerBeanDefinition (getBeanNameWithModulePrefix ("DynamoDBMapper" ),
237- dynamoDBMapperBuilder .getBeanDefinition ());
249+ registry .registerBeanDefinition (this .dynamoDBMapperName , dynamoDBMapperBuilder .getBeanDefinition ());
238250 }
239251
240252 protected String getBeanNameWithModulePrefix (String baseBeanName ) {
0 commit comments