title: Mapstruct - String manipulation, but only on one property
body: <p>I'm not sure what I'm missing here. My custom logic applies to all String attributes, instead of just one, that I specified for target.</p>
  <pre><code>@ApiModel(value=&quot;ShopProduct&quot;)
  @Data
  public class ShopProductDTO {
      private String description;
      private String fullImagePath;
  }
  
  @Entity
  @Table(name = &quot;shop_product&quot;)
  public class ShopProduct implements Serializable {
      @Column(name = &quot;desc&quot;)
      private String description;
      @Column(name = &quot;thumb_path&quot;)
      private String thumbPath;
  //getters,setters
  </code></pre>
  <p>ImageMapper:</p>
  <pre><code>@Component
  public class ImagePathMapper {
  
      AppConfig appConfig;
  
      public ImagePathMapper(AppConfig appConfig) {
          this.appConfig = appConfig;
      }
  
      public String toFullImagePath(String thumbPath){
          return appConfig.getImagePath() + thumbPath;
      }
  }
  </code></pre>
  <p>ShopProduct Mapper:</p>
  <pre><code>@Mapper(componentModel = &quot;spring&quot;, uses = {ImagePathMapper.class})
  @Component
  public interface ShopProductMapper {
      @Mapping(target = &quot;fullImagePath&quot;, source = &quot;thumbPath&quot;)
      ShopProductDTO shopProductToShopProductDTO(ShopProduct shopProduct);
  
  }
  </code></pre>
  <p>The generated mapstruct class:</p>
  <pre><code>        ShopProductDTO shopProductDTO = new ShopProductDTO();
  
          shopProductDTO.setDescription( imagePathMapper.toFullImagePath( shopProduct.getName() ) );
  
          shopProductDTO.setFullImagePath( imagePathMapper.toFullImagePath( shopProduct.getThumbPath() ) );
  
  }
  </code></pre>
  <p>Why is the description field also being used with toFullImagePath?</p>
  <p>Shouldn't this &quot;@Mapping(target = &quot;fullImagePath&quot;, source = &quot;thumbPath&quot;)&quot; specify that I want fullImagePath changed only?</p>