springboot使用jpa+mongodb时,xxxRepository不能Autowired的问题
springboot启动类:@SpringBootApplication
public>
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>@Autowiredprivate 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 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>
public static void main(String[] args) {
SpringApplication.run(MainApp.
class, args); }
}
页:
[1]