아래 코드는 회원가입 요청에 대한 응답을 처리하는 컨트롤러의 구현을 보여준다.
@PostMapping("/user/signup")
public ResponseEntity<String> signup(@RequestBody UserDto requestDto) {
userService.signup(requestDto);
String jsonResponse = "{\"msg\": \"회원가입 성공\", \"statusCode\": 200}";
return ResponseEntity.ok(jsonResponse);
}
Spring Boot의 @Controller와 @RestController: 차이점 및 관련 오류 대응
public void signup(UserDto requestDto) {
String username = requestDto.getUsername();
String password = passwordEncoder.encode(requestDto.getPassword());
// 회원 중복 확인
Optional<User> checkUsername = userRepository.findByUsername(username);
if (checkUsername.isPresent()) {
throw new IllegalArgumentException("중복된 사용자가 존재합니다.");
}
User user = new User(username, password);
userRepository.save(user);
System.out.println("=======");
}
User 객체의 CRUD 작업을 지원하기 위하여 UserRepository
인터페이스를 다음과 같이 정의하였다.
public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findByUsername(String username);
}