diff --git a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java index 395c301d..c4665c18 100644 --- a/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java +++ b/src/main/java/org/socialsignin/spring/data/dynamodb/repository/config/DynamoDBMapperFactory.java @@ -15,26 +15,23 @@ */ package org.socialsignin.spring.data.dynamodb.repository.config; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.BeanFactory; +import org.springframework.beans.factory.BeanFactoryAware; import org.springframework.beans.factory.FactoryBean; -import org.springframework.beans.factory.annotation.Autowired; import com.amazonaws.services.dynamodbv2.AmazonDynamoDB; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper; import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperConfig; -public class DynamoDBMapperFactory implements FactoryBean { - - private final AmazonDynamoDB amazonDynamoDB; - private final DynamoDBMapperConfig dynamoDBMapperConfig; - - @Autowired - public DynamoDBMapperFactory(AmazonDynamoDB amazonDynamoDB, DynamoDBMapperConfig dynamoDBMapperConfig) { - this.amazonDynamoDB = amazonDynamoDB; - this.dynamoDBMapperConfig = dynamoDBMapperConfig; - } +public class DynamoDBMapperFactory implements FactoryBean, BeanFactoryAware { + private BeanFactory beanFactory; + @Override public DynamoDBMapper getObject() throws Exception { + AmazonDynamoDB amazonDynamoDB = beanFactory.getBean(AmazonDynamoDB.class); + DynamoDBMapperConfig dynamoDBMapperConfig = beanFactory.getBean(DynamoDBMapperConfig.class); return new DynamoDBMapper(amazonDynamoDB, dynamoDBMapperConfig); } @@ -43,4 +40,9 @@ public Class getObjectType() { return DynamoDBMapper.class; } + @Override + public void setBeanFactory(BeanFactory beanFactory) throws BeansException { + this.beanFactory = beanFactory; + } + }