Mysql
 sql >> Base de données >  >> RDS >> Mysql

jdbcTemplate est nul et lève une exception de pointeur nul

Dans votre controller, vous créez un nouveau UserDaoImpl :

@RequestMapping(method = RequestMethod.GET, value="/{userId}", produces = {MediaType.APPLICATION_JSON_VALUE})
ResponseEntity<User> getUser(@PathVariable int userId){
    UserDaoImpl user = new UserDaoImpl(); // <-- HERE
    User u = new User();
    u=user.getUser(userId);
    return new ResponseEntity<User>(u, HttpStatus.OK);
}

Ce UserDaoImpl n'est pas géré par spring, et n'est pas configuré/autocâblé. Vous devez injecter dans votre contrôleur l'instance de UserDao configurée dans le xml :

  @Autowired
  private UserDao userDao;

  @RequestMapping(method = RequestMethod.GET, value="/{userId}", produces = {MediaType.APPLICATION_JSON_VALUE})
ResponseEntity<User> getUser(@PathVariable int userId){
    User u = userDao.getUser(userId);
    return new ResponseEntity<User>(u, HttpStatus.OK);
}