Я пытаюсь выучить Java Spring Boot и Hibernate, и проверял пример за примером, но когда я пытаюсь сделать это сам, я получаю исключения NullPointerException только при запуске моих методов. Я новичок в этом и пока не все понимаю, но не вижу, чем отличается мой код от других примеров. Конечно, я не инициализирую объекты Autowired, но они никогда не инициализируются в примерах, которые я видел. Как я понял, это то, что делает автопроводка. Вероятно, это что-то об автопроводке, я не понимаю. Пожалуйста, помогите мне!
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/list", method = RequestMethod.GET)
public ResponseEntity listUsers() {
List users = userService.list();
return new ResponseEntity(users, HttpStatus.OK);
}
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public ResponseEntity findById(@PathVariable(name = "id", value = "id") String name) {
Optional<User> user = userService.findById(name);
return new ResponseEntity(user, HttpStatus.OK);
}
@RequestMapping(value = "/save", method = RequestMethod.POST)
public ResponseEntity save(@RequestBody User user) {
userService.save(user);
return new ResponseEntity(HttpStatus.OK);
}
}
@Service
public class UserService{
@Autowired
private UserRepository userRepository;
public List<User> list() {
return userRepository.findAll();
}
public Optional<User> findById(String name) {
return userRepository.findById(name);
}
public void save(User user) {
userRepository.save(user);
}
}
@Repository
public interface UserRepository extends JpaRepository<User,String>{
}
@Entity
@Table(name = "USER", uniqueConstraints = { @UniqueConstraint(columnNames = "name") })
public class User {
@Id
@Column(name = "NAME", unique = true, nullable = false)
private String name;
@Column(name = "PASSWORD", unique = false, nullable = false)
private String password;
public User(String name, String password) {
super();
this.name = name;
this.password = password;
}
//getters & setters
}