모델 매퍼(ModelMapper) 사용하기

jb kim·2022년 3월 4일
0

REST API 블로그 앱

목록 보기
33/65

http://modelmapper.org/

스텝 1 : 라이브러리(jar) pom.xml 추가

		<dependency>
			<groupId>org.modelmapper</groupId>
			<artifactId>modelmapper</artifactId>
			<version>3.0.0</version>
		</dependency>

메이븐으로 프로젝트 업데이트

스텝 2 : 스프링 Configulation에 bean으로 등록

	@Bean
	public ModelMapper modelMapper() {
		return new ModelMapper();
	}

스텝 3 : 스프링에 의해 자동 생성된 객체를 생성자 주입으로 사용하기

PostServiceImle 클래스

@Service
public class PostServiceImpl implements PostService {

	private PostRepository postRepository;
	
	private ModelMapper modelMapper;
	
	// 단일 생성자인 경우는 추가적인 autowired 어노테이션이 필요 없다.
	public PostServiceImpl(PostRepository postRepository, ModelMapper mapper) {
		this.postRepository = postRepository;
		this.modelMapper = mapper;
	}

스텝 4 : mapToDto, mapToEntity

	//Entity -> DTO
	private PostDto mapToDto(Post post) {		
		PostDto postResponse = modelMapper.map(post, PostDto.class);
//		PostDto postResponse = new PostDto();
//		postResponse.setId(post.getId());
//		postResponse.setTitle(post.getTitle());
//		postResponse.setContent(post.getContent());
//		postResponse.setDescription(post.getDescription());		
		return postResponse;
	}
	
	//DTO -> Entity
	private Post mapToEntity(PostDto postDto) {
		Post post = modelMapper.map(postDto, Post.class);
//		Post post = new Post();
//		post.setTitle(postDto.getTitle());
//		post.setContent(postDto.getContent());
//		post.setDescription(postDto.getDescription());			
		return post;
	}

예제

CommentServiceImle에도 똑같이 ModelMapper를 적용하라.

참고
https://wordbe.tistory.com/entry/Spring-IoC-%EB%B9%88-%EB%93%B1%EB%A1%9D-%EB%B0%A9%EB%B2%95-5%EA%B0%80%EC%A7%80

profile
픽서

0개의 댓글