首页 > 代码库 > springboot使用jpa+mongodb时,xxxRepository不能Autowired的问题
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的问题