final이 붙은 멤버 변수만 사용해서 생성자를 자동으로 생성
@RequiredArgsConstructor
public class 클래스명 {
private final MemberRepository memberRepository;
//...
}
요청 파라미터 형식 처리
ex)
@PostMapping("/URL")
public 메서드(@RequestParam String memberName,
@RequestParam int age,
Model model,
//...) {
Member member = new Member();
member.setMemberName(memberName);
//...
memberRepository.add(member);
model.addAttribute("member",member);
//...
}
@RequestParam으로 변수 하나씩 받아서 모델 생성하는 과정은 불편
@ModelAttribute를 사용하여 한 번에 처리 가능
요청 파라미터 처리
Member 객체를 생성하고 요청 파라미터의 값을 프로퍼타 접근법으로 입력(set...)
Model 추가
Model에 @ModelAttribute로 지정한 객체를 자동으로 넣어줌
모델에 데이터 담을 때는 name 속성 사용 -> @ModelAttribute("name")
이름 생략시에는 클래스이 첫글자를 소문자로 변경하여 자동 등록함
ex)
@PostMapping("/URL")
public 메서드(@ModelAttribute("member") Member member) {
memberRepository.add(member);
//...
}
해당 빈의 의존관계가 모두 주입되고나면 초기화 용도로 호출
테스트 데이터를 넣기 위해 사용
@PostConstruct
public void init() {
memberRepository.add(new Member("YUNU", 27, M));
memberRepository.add(new Member("YOON", 17, F));