Spring
[Spring] Lombok, DTO
jelliclesu
2024. 7. 17. 21:57
- Lombok
: JAVA 프로젝트를 진행하는데 거의 필수적으로 필요한 메소드/생성자 등을 자동생성해줌으로써 코드를 절약할 수 있도록 도와주는 라이브러리
- Course.java
@Getter - Getter 직접 작성 없이 가능
@NoArgsConstructor - 기본 생성자 직접 작성 없이 가능 - CourseService.java
@RequiredArgsConstructor - CourseRepository 받아오는 것 없이 final 선언만으로도 사용 가능
- Course.java
- DTO(Data Transfer Object)
: 데이터 교환을 위한 객체로 클래스를 막 건드리지 않고 완충재로 활용하는 것- 생성 및 적용
- src > main > java > com.sparta.week02 > domain 에 CourseRequestDto 파일 생성
@NoArgsConstructor @Getter public class CourseRequestDto { private String title; private String tutor; public CourseRequestDto(String title, String tutor) { this.title = title; this.tutor = tutor; } }
- CourseService.java 변경
@RequiredArgsConstructor @Service public class CourseService { private final CourseRepository courseRepository; @Transactional public Long update(Long id, CourseRequestDto requestDto) { Course course1 = courseRepository.findById(id).orElseThrow( () -> new IllegalArgumentException("해당 아이디가 존재하지 않습니다.") ); course1.update(requestDto); return course1.getId(); } }
- Course.java 변경
@Getter @NoArgsConstructor @Entity public class Course extends Timestamped { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @Column(nullable = false) private String title; @Column(nullable = false) private String tutor; public Course(String title, String tutor) { this.title = title; this.tutor = tutor; } public void update(CourseRequestDto requestDto) { this.title = requestDto.getTitle(); this.tutor = requestDto.getTutor(); } }
- Week02Application.java 변경
@EnableJpaAuditing @SpringBootApplication public class Week02Application { public static void main(String[] args) { SpringApplication.run(Week02Application.class, args); } @Bean public CommandLineRunner demo(CourseRepository courseRepository, CourseService courseService) { return (args) -> { courseRepository.save(new Course("프론트엔드의 꽃, 리액트", "임민영")); System.out.println("데이터 인쇄"); List<Course> courseList = courseRepository.findAll(); for (int i=0; i<courseList.size(); i++) { Course course = courseList.get(i); System.out.println(course.getId()); System.out.println(course.getTitle()); System.out.println(course.getTutor()); } CourseRequestDto requestDto = new CourseRequestDto("웹개발의 봄, Spring", "임민영"); courseService.update(1L, requestDto); courseList = courseRepository.findAll(); for (int i=0; i<courseList.size(); i++) { Course course = courseList.get(i); System.out.println(course.getId()); System.out.println(course.getTitle()); System.out.println(course.getTutor()); } courseRepository.deleteAll(); }; } }
- src > main > java > com.sparta.week02 > domain 에 CourseRequestDto 파일 생성
- 생성 및 적용