다잘하고싶어

[Spring] 회원가입 구현 본문

카테고리 없음

[Spring] 회원가입 구현

챙영잉 2022. 10. 7. 12:51
    //사용자 로그인 아이디로 찾는 방법
    public Optional<Member> findByLoginId(String loginId) {
        List<Member> all = findAll();
        for (Member m : all) {
            if (m.getLoginId().equals(loginId)) { //멤버의 로그인 아이디가 파라미터로 넘어온 로그인 아이디 값과 같은지
                return Optional.of(m);
            }
        } return Optional.empty(); //optional 안에 값이 있을 수도 없을 수도 있음.
    }

위의 코딩을 람다식을 사용하면

 public Optional<Member> findByLoginId(String loginId) {
        
        return findAll().stream()
                .filter(m -> m.getLoginId().equals(loginId))
                .findFirst(); 
    }

Member 넣을 때 직접 만든 Member 넣어야한다. java에서 자동으로 생성해주는 reflect의 Member 넣지 않도록 주의하기

 

    @PostMapping("/add")
    public String save(@Valid @ModelAttribute Member member, BindingResult bindingResult) {
        //BindingResult 받아야함.
        if (bindingResult.hasErrors()) {
            return "members/addMemberForm"; //에러가 있으면 form 화면으로 보내고
        }
        memberRepository.save(member);
        return "redirect:/"; //없으면 저장 후, 메인 화면으로 
    }

결과를 받아와서 에러가 있으면 form 화면으로 보내고,

없으면 멤버 저장한 후에 메인화면으로 보낸다.

 

(+)

@ModelAttribute("member") Member member

 

@ModelAttribute Member member

위의 두개는 같은 의미. 

보통 스프링이 클래스의 맨 첫글자를 소문자로 바꿔서 자동으로 인식한다.

그러나 타임리프 사용할 시에 인식이 잘 안되는 경우가 있어서 첫번째와 같이 코딩하는 게 좋다.

 

 

(+) 데이터 입력 후 확인은 현재 로그로 확인중

서버를 껐다 켤때마다 데이터를 새로 넣어줘야하므로, 테스트 데이터를 임의로 넣어준다.

 

@Component
@RequiredArgsConstructor
public class TestDataInit {
 
    private final MemberRepository memberRepository;

    /**
     * 테스트용 데이터 추가
     */
    @PostConstruct
    public void init() {

        Member member = new Member();
        member.setLoginId("test");
        member.setPassword("test!");
        member.setName("테스터");

        memberRepository.save(member);
    }

}

 

 

출처 : https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-2/dashboard 

 

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의

웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있

www.inflearn.com

강의 듣고 내용 정리중