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: [email protected](required=true)}

解决方法:

[email protected],标注mongoRepository类的路径

@SpringBootApplication 
@EnableMongoRepositories(basePackages = {"com.mlxs.springboot04.mongodb.dao"}) 
public class MainApp { 
 
    public static void main(String[] args) { 
 
        SpringApplication.run(MainApp.class, args); 
    } 
}

 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/16962.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论