어노테이션을 이용해 코드를 리팩토링하거나 로깅 기능을 가지고 있는 라이브러리
build.gradle > dependency
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
preferences > compiler > annotation processors > enable annotation processing 체크
package com.example.demo.dto;
import com.example.demo.entity.Article;
import lombok.AllArgsConstructor;
import lombok.ToString;
@AllArgsConstructor // 생성자
@ToString // toString method
public class ArticleForm {
private String title;
private String content;
public Article toEntity(){
return new Article(null, title, content);
}
}
package com.example.demo.controller;
import com.example.demo.dto.ArticleForm;
import com.example.demo.entity.Article;
import com.example.demo.repository.ArticleRepository;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@Controller
@Slf4j
public class articleController {
@Autowired
ArticleRepository articleRepository;
@GetMapping("/article")
public String viewForm(){
return "articles/new";
}
@PostMapping("/article/create")
public String getFormData(ArticleForm form){
// System.out.println(form.toString());
log.info(form.toString());
Article article = form.toEntity();
// System.out.println(article.toString());
log.info(article.toString());
Article saved = articleRepository.save(article);
// System.out.println(saved.toString());
log.info(saved.toString());
return "";
}
}