springboot使用jpa+mongodb时,xxxRepository不能Autowired的问题

Posted @yang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot使用jpa+mongodb时,xxxRepository不能Autowired的问题相关的知识,希望对你有一定的参考价值。

springboot启动类:

@SpringBootApplication
public class MainApp {

    public static void main(String[] args) {

        SpringApplication.run(MainApp.class, args);
    }
}

jpa数据库操作类:

public interface UserDao extends MongoRepository<User, String> {
}

单元测试类:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(MainApp.class)
public class UserDaoTest {
    @Autowired
    private UserDao userDao;

    @Autowired
    private ObjectMapper objectMapper;

    @Test
    public void add() throws JsonProcessingException {
        for(int i = 1; i <= 5; i++) {
            User user = new User();
            user.setName("测试" + i);
            user.setSex((i%2 == 0) ? 0 : 1);
            user.setPhone("1511111000" + i);
            user.setCreateTime(new Date());
            User save = userDao.save(user);
            System.out.println("保存结果:" + objectMapper.writeValueAsString(save));
        }
    }
}

执行结果:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘UserDaoTest‘: Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.mlxs.springboot04.mongodb.dao.UserDao UserDaoTest.userDao; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.mlxs.springboot04.mongodb.dao.UserDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

 

 

解决方法:

在springboot启动类中添加@EnableMongoRepositories注解,标注mongoRepository类的路径

@SpringBootApplication
@EnableMongoRepositories(basePackages = {"com.mlxs.springboot04.mongodb.dao"})
public class MainApp {

    public static void main(String[] args) {

        SpringApplication.run(MainApp.class, args);
    }
}

 

以上是关于springboot使用jpa+mongodb时,xxxRepository不能Autowired的问题的主要内容,如果未能解决你的问题,请参考以下文章

springboot mongodb jpa常用方法整理

你应该知道的springboot mongodb jpa那些小tip.

你应该知道的springboot mongodb jpa那些小tip.

springboot jpa mongodb 多条件分页查询

Spring Boot MongoDB JPA 简化开发

使用 Spring Boot 和 mongodb 运行 camunda