티스토리 뷰
DTO 와 ModealMapper 는 왜 사용되는 걸까?
DTO(Data Transfer Object)는 DB Table에서 숨기고 싶은 정보가 있을 때 (예로 User의 Id)그 정보들은 제외하고 나머지 Column들만 따로 빼내서 객체 전송을 위해 만든 Object이다. 이렇게되면 다른 사용자는 중요한 정보에 접근할 수가 없게된다. 그러나 이렇게 했을때 DTO는 Database Table이 아니기 때문에 Database 와의 연결을 해줘야하는대 그때 사용되는 것이 ModelMapper 이다. ModelMapper 를 이용해 DB Table 과 DTO를 계속 convert할 수 있게된다.
ModelMapper 사용예제
main에서 bean을 먼저주입
import org.modelmapper.ModelMapper;
import javax.annotation.PostConstruct;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Bean
public ModelMapper modelmapper(){
return new ModelMapper();
}
}
|
Controller에서 값이 변하지 않으니 final 로 선언.
객체를 생성해주는 map 메서드를 이용해서 DTO를 DB와 연결할 수 있게 해준다.
public class TravelController {
private final ModelMapper modelMapper;
@Builder
public TravelController(ModelMapper modelMapper, TravelService travelService){
this.modelMapper = modelMapper;
this.travelService = travelService;
}
@PostMapping
public ResponseEntity saveTravel(@RequestBody @Valid TravelDto travelDto, Errors errors){
if (errors.hasErrors()){ return ResponseEntity.badRequest().body(errors); }
//map메서드가 객체를 생성해주기 때문에 new필요없다.
//DTO를 model class로 변경
Travel travel = modelMapper.map(travelDto, Travel.class);
Travel createTravel = travelRepository.save(travel);
return ResponseEntity.ok().body(createTravel);
}
|
Reference
'Spring Boot' 카테고리의 다른 글
Injecting beans using constructor (0) | 2019.03.17 |
---|---|
Id type은 왜 Long 일까 (0) | 2019.03.10 |
Constructor Injection (0) | 2019.03.08 |
ModelMapper DTO-entity conversion (0) | 2019.03.08 |
Creating Spring Boot application with IntelliJ II (0) | 2019.02.27 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- spring boot application
- hackerrank javascript
- javascript
- easy algorithm
- math.abs
- rest parameter
- 프로그래머스
- code refactoring
- compareTo()
- java
- substring()
- hackerrank solution
- Javascript Algorithm
- string class in java
- hackerrank
- HashMap
- hackerrank javascript solution
- 프로그래머스 알고리즘
- easy javascript algorithm
- 알고리즘
- repeat()
- Object type casting
- 프로그래머스 알고리즘문제
- HackerRank Algorithm
- C++
- math.max
- ... in Javascript
- algorithm
- equals()
- Collection Framework
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함