title: No bean named 'mongoTemplate' available. Spring Boot + MongoDB
body: <p>I'm building a backend using Spring Boot and MongoDB, first I'm making the user repository, service, and controller, and getting this error:</p>
  <pre><code>***************************
  APPLICATION FAILED TO START
  ***************************
  
  Description:
  
  Field userRepository in com.package.package.controller.UserController required a bean named 'mongoTemplate' that could not be found.
  
  The injection point has the following annotations:
      - @org.springframework.beans.factory.annotation.Autowired(required=true)
  
  
  Action:
  
  Consider defining a bean named 'mongoTemplate' in your configuration.
  </code></pre>
  <p>Here's the code:</p>
  <p>UserController:</p>
  <pre><code>package com.package.package.controller;
  
  import com.package.package.entities.User;
  import com.package.package.repositories.UserRepository;
  import org.bson.types.ObjectId;
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.web.bind.annotation.*;
  
  import javax.validation.Valid;
  import java.util.List;
  
  @RestController
  @RequestMapping(&quot;/users&quot;)
  public class UserController {
      @Autowired
      private UserRepository userRepository;
  
      @GetMapping(value = &quot;/&quot;)
      public List&lt;User&gt; getAllUsers() {
          return userRepository.findAll();
      }
  
      @GetMapping(value = &quot;/{id}&quot;)
      public User getUserById(@PathVariable(&quot;id&quot;) ObjectId id) {
          return userRepository.findBy_id(id);
      }
  
      @PutMapping(value = &quot;/{id}&quot;)
      public void modifyUserById(@PathVariable(&quot;id&quot;) ObjectId id, @Valid @RequestBody User user) {
          user.set_id(id);
          userRepository.save(user);
      }
  
      @PostMapping(value = &quot;/&quot;)
      public User createUser(@Valid @RequestBody User user) {
          user.set_id(ObjectId.get());
          userRepository.save(user);
          return user;
      }
  
      @DeleteMapping(value = &quot;/{id}&quot;)
      public void deleteUser(@PathVariable ObjectId id) {
          userRepository.delete(userRepository.findBy_id(id));
      }
  }
  
  </code></pre>
  <p>UserRepository:</p>
  <pre><code>package com.package.package.repositories;
  
  import com.package.package.entities.User;
  import org.bson.types.ObjectId;
  import org.springframework.data.mongodb.repository.MongoRepository;
  import org.springframework.stereotype.Repository;
  
  @Repository
  public interface UserRepository extends MongoRepository&lt;User, String&gt; {
      User findBy_id(ObjectId _id);
  }
  
  </code></pre>
  <p>UserService:</p>
  <pre><code>package com.package.package.service;
  
  import com.package.package.entities.User;
  import org.bson.types.ObjectId;
  
  import java.util.List;
  
  public interface UserService {
      User save(User user);
      User findbyid(ObjectId _id);
      List&lt;User&gt; getAll();
      void delete(User user);
  }
  
  </code></pre>
  <p>MainApplication:</p>
  <pre><code>package com.package.package;
  
  import com.package.package.repositories.UserRepository;
  import org.springframework.boot.SpringApplication;
  import org.springframework.boot.autoconfigure.SpringBootApplication;
  import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
  
  @SpringBootApplication
  @EnableMongoRepositories(basePackageClasses = UserRepository.class)
  public class TestApplication {
  
      public static void main(String[] args) {
          SpringApplication.run(TestApplication.class, args);
      }
  
  }
  
  </code></pre>
  <p>I am using as a reference a past project that I made (the difference is that this was done with postgres).
  Any other information you want, just tell me.
  Thanks in advance.</p>
  <p>UPDATE:
  Here's the pom.xml</p>
  <pre><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
  &lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
      xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&gt;
      &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
      &lt;parent&gt;
          &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
          &lt;artifactId&gt;spring-boot-starter-parent&lt;/artifactId&gt;
          &lt;version&gt;2.3.2.RELEASE&lt;/version&gt;
          &lt;relativePath/&gt; &lt;!-- lookup parent from repository --&gt;
      &lt;/parent&gt;
      &lt;groupId&gt;com.wazzka&lt;/groupId&gt;
      &lt;artifactId&gt;wazzka&lt;/artifactId&gt;
      &lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt;
      &lt;name&gt;wazzka&lt;/name&gt;
      &lt;description&gt;WazzkaProject&lt;/description&gt;
  
      &lt;properties&gt;
          &lt;java.version&gt;14&lt;/java.version&gt;
          &lt;spring.framework.version&gt;5.2.8.RELEASE&lt;/spring.framework.version&gt;
      &lt;/properties&gt;
  
      &lt;dependencies&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
              &lt;artifactId&gt;spring-boot-starter-web&lt;/artifactId&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
              &lt;artifactId&gt;spring-boot-starter&lt;/artifactId&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
              &lt;artifactId&gt;spring-boot-starter-test&lt;/artifactId&gt;
              &lt;scope&gt;test&lt;/scope&gt;
              &lt;exclusions&gt;
                  &lt;exclusion&gt;
                      &lt;groupId&gt;org.junit.vintage&lt;/groupId&gt;
                      &lt;artifactId&gt;junit-vintage-engine&lt;/artifactId&gt;
                  &lt;/exclusion&gt;
              &lt;/exclusions&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.springframework.data&lt;/groupId&gt;
              &lt;artifactId&gt;spring-data-mongodb&lt;/artifactId&gt;
              &lt;version&gt;3.0.3.RELEASE&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.springframework.data&lt;/groupId&gt;
              &lt;artifactId&gt;spring-data-releasetrain&lt;/artifactId&gt;
              &lt;version&gt;Lovelace-SR9&lt;/version&gt;
              &lt;type&gt;pom&lt;/type&gt;
              &lt;scope&gt;import&lt;/scope&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.springframework.data&lt;/groupId&gt;
              &lt;artifactId&gt;spring-data-commons&lt;/artifactId&gt;
              &lt;version&gt;2.2.3.RELEASE&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;jakarta.validation&lt;/groupId&gt;
              &lt;artifactId&gt;jakarta.validation-api&lt;/artifactId&gt;
              &lt;version&gt;2.0.2&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.springframework.data&lt;/groupId&gt;
              &lt;artifactId&gt;spring-data-jpa&lt;/artifactId&gt;
              &lt;version&gt;2.2.3.RELEASE&lt;/version&gt;
          &lt;/dependency&gt;
          &lt;dependency&gt;
              &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
              &lt;artifactId&gt;spring-boot-starter-data-mongodb&lt;/artifactId&gt;
          &lt;/dependency&gt;
      &lt;/dependencies&gt;
  
      &lt;repositories&gt;
          &lt;repository&gt;
              &lt;id&gt;spring-milestone&lt;/id&gt;
              &lt;name&gt;Spring Maven MILESTONE Repository&lt;/name&gt;
              &lt;url&gt;https://repo.spring.io/libs-milestone&lt;/url&gt;
          &lt;/repository&gt;
      &lt;/repositories&gt;
  
      &lt;build&gt;
          &lt;plugins&gt;
              &lt;plugin&gt;
                  &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
                  &lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt;
              &lt;/plugin&gt;
          &lt;/plugins&gt;
      &lt;/build&gt;
  
  &lt;/project&gt;
  </code></pre>