title: spring data jpa repository inject fails using @Autowired in spring boot
body: <p><strong>spring boot entry class</strong></p>
  
  <pre><code>package com.test;
  
  @SpringBootApplication(exclude={
  DataSourceAutoConfiguration.class,
  DataSourceTransactionManagerAutoConfiguration.class})
  public class AssetManagementDigital2Application {
  
      public static void main(String[] args) {
          SpringApplication.run(AssetManagementDigital2Application.class, args);
      }
  }
  </code></pre>
  
  <p><strong>Controller class</strong></p>
  
  <pre><code>package com.test.assetmanagementdigital.controller;
  
   @RestController
  
  public class ShopController {
  
      @Autowired
      private ShopServiceImpl shopServiceImpl;
  
      @RequestMapping(value="/shops",method=RequestMethod.POST)
      public void shopDetails(Shop shop){
          shopServiceImpl.addShopDetails(shop);
  
      }
  
  }
  </code></pre>
  
  <p><strong>Entity</strong></p>
  
  <pre><code>package com.test.assetmanagementdigital.model;
  
  import javax.persistence.Entity;
  import javax.persistence.Table;
  
  @Entity
  @Table(name="ShopDetails")
  public class Shop {
  
      private String shopName;
      private Address address;
  
      public String getShopName() {
          return shopName;
      }
  
      public void setShopName(String shopName) {
          this.shopName = shopName;
      }
  
      public Address getAddress() {
          return address;
      }
  
      public void setAddress(Address address) {
          this.address = address;
      }
  
  
  }
  </code></pre>
  
  <p><strong>data jpa repository interface</strong></p>
  
  <pre><code>package com.test.assetmanagementdigital.repository;
      @Repository
      public interface ShopRepository extends CrudRepository&lt;Shop,Long&gt;{
  
      }
  </code></pre>
  
  <p><strong>Service class</strong> </p>
  
  <pre><code>package com.test.assetmanagementdigital.service;
  @Service
  public class ShopServiceImpl {
  
      @Autowired
      private ShopRepository shopRepository;
  
      public void addShopDetails(Shop shop) {
          shopRepository.save(shop);
      }
  
  }
  </code></pre>
  
  <p><strong>gradle file</strong></p>
  
  <pre><code> buildscript {
          ext {
              springBootVersion = '2.0.0.BUILD-SNAPSHOT'
          }
          repositories {
              mavenCentral()
              maven { url "https://repo.spring.io/snapshot" }
              maven { url "https://repo.spring.io/milestone" }
          }
          dependencies {
              classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
          }
      }
  
      apply plugin: 'java'
      apply plugin: 'eclipse-wtp'
      apply plugin: 'org.springframework.boot'
      apply plugin: 'io.spring.dependency-management'
      apply plugin: 'war'
  
      version = '0.0.1-SNAPSHOT'
      sourceCompatibility = 1.8
  
      repositories {
          mavenCentral()
          maven { url "https://repo.spring.io/snapshot" }
          maven { url "https://repo.spring.io/milestone" }
      }
  
      configurations {
          providedRuntime
      }
  
      dependencies {
          compile('org.springframework.boot:spring-boot-starter-data-jpa')
          compile('org.springframework.boot:spring-boot-starter-web')
          compile("com.h2database:h2")
          compile group: 'org.hibernate', name: 'hibernate-core', version: '4.2.2.Final'
          providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
          testCompile('org.springframework.boot:spring-boot-starter-test')
      }
  </code></pre>
  
  <p>I am getting following error</p>
  
  <pre><code>Description:
  
  Field shopRepository in com.test.assetmanagementdigital.service.ShopServiceImpl required a bean of type 'com.test.assetmanagementdigital.repository.ShopRepository' that could not be found.
  
  Action:
  
  Consider defining a bean of type 'com.test.assetmanagementdigital.repository.ShopRepository' in your configuration.
  </code></pre>
  
  <p>if i remove the <code>@Autowired</code> annotation from <code>ShopRepository</code> then it will throw `NullPointerException</p>
  
  <p>I have tried <code>@EnableJpaRepositories("com.test.assetmanagementdigital.repository")</code> here I get </p>
  
  <pre><code>org.springframework.beans.factory.UnsatisfiedDependencyException: 
  Error creating bean with name 'shopController': Unsatisfied dependency expressed through field 'shopServiceImpl'; nested exception is 
  org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'shopServiceImpl': Unsatisfied dependency expressed through field 'shopRepository'; nested exception is 
  org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shopRepository': Post-processing of merged bean definition failed; nested exception is 
  java.lang.NoSuchMethodError: javax.persistence.PersistenceContext.synchronization()Ljavax/persistence/SynchronizationType;
  </code></pre>