"BAEL-3407: Add examples for injecting Spring components in MapStruct" (#10778)

Co-authored-by: Krzysztof Woyke <krzysztof.woyke.sp@lhsystems.com>
This commit is contained in:
kwoyke
2021-05-21 07:16:08 +02:00
committed by GitHub
parent 8f2208fb25
commit 31f40d8623
3 changed files with 68 additions and 0 deletions
@@ -0,0 +1,22 @@
package com.baeldung.mapper;
import com.baeldung.dto.SimpleSource;
import com.baeldung.entity.SimpleDestination;
import com.baeldung.service.SimpleService;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.springframework.beans.factory.annotation.Autowired;
@Mapper(componentModel = "spring")
public abstract class SimpleDestinationMapperUsingInjectedService {
@Autowired
protected SimpleService simpleService;
@Mapping(target = "name", expression = "java(simpleService.enrichName(source.getName()))")
public abstract SimpleDestination sourceToDestination(SimpleSource source);
public abstract SimpleSource destinationToSource(SimpleDestination destination);
}
@@ -0,0 +1,11 @@
package com.baeldung.service;
import org.springframework.stereotype.Service;
@Service
public class SimpleService {
public String enrichName(String name) {
return "-:: " + name + " ::-";
}
}