舒畅 发表于 2017-12-16 12:02:09

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]
查看完整版本: springboot使用jpa+mongodb时,xxxRepository不能Autowired的问题