이전 게시물에서 로그인 기능을 구현했다. 이제 회원가입을 구현해보자.
먼저 회원가입시 받을 정보들을 DTO로 구성했다. 그리고 builder를 사용해 MemberEntity에 저장했다.
@Setter
public class MemberRegDTO {
private String email;
private String pass;
private String name;
public MemberEntity ent(PasswordEncoder pe) {
return MemberEntity.builder().email(email).pass(pe.encode(pass)).name(name).build();
}
그리고 ServiceProcess에 회원가입을 위해 DTO를 저장시키는 메서드를 구성했다. 참고로 MemberRepo는 JpaRepository를 상속받아 구현하였다.
@Service
public class MemberServiceProcess implements MemberService{
@Autowired
private MemberEntityRepo repo;
@Autowired
private PasswordEncoder pe;
@Override
public void registration(MemberRegDTO dto) {
repo.save(dto.ent(pe).addRoles(MyRole.USER));
}
}
그리고 여기서 구현한 메서드를 Controller에서 다음과 같이 사용하였다.
@PostMapping("/join") //회원가입
public String memReg(MemberRegDTO dto) {
service.registration(dto);
return "redirect:/sign-in";
}
이제 view에서 회원가입에 필요한 폼을 만들어보자. form태그를 이용해 post해준다.
<form action="/join" method="post">
<div>
<span>이메일(아이디)</span>
<input type="text" name="email" placeholder="이메일을 입력하세요">
</div>
<div>
<span>이름</span>
<input type="text" name="name" placeholder="이름">
</div>
<div>
<span>비밀번호</span>
<input type="password" name="pass" placeholder="비밀번호를 입력하세요">
</div>
<button>회원가입</button>
</form>
아래를 보면 회원가입에 성공하여 DB에 데이터가 잘 들어온 것을 확인 할 수 있다.
'Spring Framework' 카테고리의 다른 글
RestTemplate 과 WebClient (0) | 2023.10.18 |
---|---|
트랜잭션, REQUIRES_NEW (0) | 2023.07.26 |
[Spring] 의존성 주입, DI(Dependency Injection) (0) | 2023.02.24 |
[SpringBoot] CSRF 란? (1) | 2023.02.06 |
[Spring Security] 회원가입, 로그인 구현(1) - Entity 생성 (0) | 2023.02.01 |