@Configuration
@ConditionalOnProperty(name="broadleaf.database.provider",
                       havingValue="jpa")
@EnableJpaRepositories(basePackageClasses=JpaCustomerRepository.class,
                       repositoryFactoryBeanClass=com.broadleafcommerce.data.tracking.jpa.filtering.narrow.factory.JpaTrackableRepositoryFactoryBean.class,
                       entityManagerFactoryRef="customerEntityManagerFactory",
                       transactionManagerRef="customerTransactionManager")
@JpaEntityScan(basePackages="com.broadleafcommerce.customer.provider.jpa.domain",
               routePackage="com.broadleafcommerce.customer")
@EnableConfigurationProperties({CustomerProperties.class,org.springframework.boot.autoconfigure.integration.IntegrationProperties.class})
@JpaDataRoute(boundPropertiesType=CustomerProperties.class,
              routePackage="com.broadleafcommerce.customer",
              routeKey="customer",
              supportingRouteTypes={com.broadleafcommerce.data.tracking.core.data.TrackingDataRouteSupporting.class,com.broadleafcommerce.common.messaging.data.MessagingDataRouteSupporting.class,com.broadleafcommerce.data.tracking.core.data.ApplicationDataRouteSupporting.class,com.broadleafcommerce.bulk.data.BulkDataRouteSupporting.class,com.broadleafcommerce.common.dataexport.data.ExportDataRouteSupporting.class,com.broadleafcommerce.common.dataimport.data.ImportDataRouteSupporting.class})
public class CustomerJpaAutoConfiguration
extends Object