// dto - AddUserRequest.java
@Getter
@Setter
public class AddUserRequest {
private String email;
private String password;
}
// service - UserService.java
@RequiredArgsConstructor
@Service
public class UserService {
private final UserRepository userRepository;
private final BCryptPasswordEncoder bCryptPasswordEncoder;
public Long save(AddUserRequest dto) {
return userRepository.save(User.builder()
.email(dto.getEmail())
.password(bCryptPasswordEncoder.encode(dto.getPassword()))
.build()).getId();
}
}
AddUserRequest 객페를 인수로 받아 데이터베이스에 저장한다.
패스워드를 저장할 때 시큐리티를 설정하며 패스워드 인코딩용으로 등록한 빈을 사용한다.
@RequiredArgsConstructor
@Controller
public class UserApiController {
private final UserService userService;
@PostMapping
public String signup(AddUserRequest request){
userService.save(request); // 회원 가입 메서드 호출
return "redirect:/login"; // 회원 가입이 완료된 이후 로그인 페이지로 이동
}
}