지름길
github(지름길)
검토
멤버십 등록 로직도 기존(링크)의 컨트롤러 계층에서 트랜잭션이 사용되는 방식을 변경했습니다.
userDTO를 통해 구독 정보를 수신하면 UserWrite를 사용하여 서비스 계층에서 userDTO를 수신합니다.
서비스 레이어에 트랜잭션을 넣어 회원가입에 실패한 경우,
try~catch로 풀었습니다.
암호
//회원 가입하기
@PostMapping("UserWrite")
public ResponseEntity<String> UserWrite(UserDTO userDTO) {
ResponseEntity<String> entity;
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("text", "html", StandardCharsets.UTF_8));
headers.add("Content-Type", "text/html; charset=utf-8");
try {//회원가입 성공
userService.UserWrite(userDTO);
String msg = "<script>";
msg += "alert('회원가입을 성공하였습니다.');";
msg += "location.href="http://seho0218.login";";
msg += "</script>";
entity = new ResponseEntity<>(msg, headers, OK);
} catch (Exception e) {//회원등록 실패
String msg = "<script>";
msg += "alert('회원가입이 실패하였습니다.');";
msg += "history.back()";
msg += "</script>";
entity = new ResponseEntity<>(msg, headers, BAD_REQUEST);
e.printStackTrace();
}
return entity;
}
지름길
github(지름길)
검토
정상적으로 수신되면 UserDTO 객체의 ModelMapper를 사용
Service Layer에서 Entity로 변환 후 Spring Data JPA를 이용하여 DB에 저장하도록 수정하였다.
암호
@Override
public void UserWrite(UserDTO userDTO) {
//비밀번호 암호화
userDTO.setGeniePwd(passwordEncoder.encode(userDTO.getGeniePwd()));
User user = UserDTO.convertDTOtoEntity(userDTO);
userRepository.save(user);
}