diff --git a/example/pom.xml b/example/pom.xml
index 2c710af..185d0a0 100644
--- a/example/pom.xml
+++ b/example/pom.xml
@@ -12,15 +12,13 @@
quick-start
spring-boot
spring-boot-with-lombok
+
- 8
- 8
UTF-8
1.5.1.Final
- 1.1.1
- 2.7.0
+ 1.1.2
1.18.22
@@ -41,13 +39,6 @@
mapstruct-plus
${mapstruct-plus.version}
-
- org.springframework.boot
- spring-boot-dependencies
- 2.7.0
- pom
- import
-
org.projectlombok
lombok
@@ -56,25 +47,4 @@
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.8.1
-
- 1.8
- 1.8
-
-
- io.github.linpeilie
- mapstruct-plus-processor
- ${mapstruct-plus.version}
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/example/quick-start/pom.xml b/example/quick-start/pom.xml
index 80600f3..12aa461 100644
--- a/example/quick-start/pom.xml
+++ b/example/quick-start/pom.xml
@@ -25,8 +25,30 @@
org.junit.jupiter
junit-jupiter
+ 5.9.2
test
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ 1.8
+ 1.8
+
+
+ io.github.linpeilie
+ mapstruct-plus-processor
+ ${mapstruct-plus.version}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example/quick-start/src/main/java/io/github/linpeilie/QuickStart.java b/example/quick-start/src/main/java/io/github/linpeilie/QuickStart.java
index 946424b..dbb5de7 100644
--- a/example/quick-start/src/main/java/io/github/linpeilie/QuickStart.java
+++ b/example/quick-start/src/main/java/io/github/linpeilie/QuickStart.java
@@ -15,18 +15,6 @@ public class QuickStart {
UserDto userDto = converter.convert(user, UserDto.class);
System.out.println(userDto); // UserDto{username='jack', age=23, young=false}
-
- assert user.getUsername().equals(userDto.getUsername());
- assert user.getAge() == userDto.getAge();
- assert user.isYoung() == userDto.isYoung();
-
- User newUser = converter.convert(userDto, User.class);
-
- System.out.println(newUser); // User{username='jack', age=23, young=false}
-
- assert user.getUsername().equals(newUser.getUsername());
- assert user.getAge() == newUser.getAge();
- assert user.isYoung() == newUser.isYoung();
}
}
\ No newline at end of file
diff --git a/example/quick-start/src/main/java/io/github/linpeilie/model/User.java b/example/quick-start/src/main/java/io/github/linpeilie/model/User.java
index b59cc7b..dc9996c 100644
--- a/example/quick-start/src/main/java/io/github/linpeilie/model/User.java
+++ b/example/quick-start/src/main/java/io/github/linpeilie/model/User.java
@@ -4,6 +4,7 @@ import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMappers;
import io.github.linpeilie.annotations.AutoMapping;
import io.github.linpeilie.annotations.AutoMappings;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -19,7 +20,7 @@ public class User {
private boolean young;
@AutoMapping(targetClass = UserDto.class, target = "educations", expression = "java(java.lang.String.join(\",\", source.getEducationList()))")
- private List educationList;
+ private List educationList = new ArrayList<>();
@AutoMappings({
@AutoMapping(targetClass = UserDto.class, target = "birthday", dateFormat = "yyyy-MM-dd HH:mm:ss"),
diff --git a/example/spring-boot-3/pom.xml b/example/spring-boot-3/pom.xml
new file mode 100644
index 0000000..9dc5f19
--- /dev/null
+++ b/example/spring-boot-3/pom.xml
@@ -0,0 +1,83 @@
+
+
+
+ example
+ io.github.linpeilie
+ 1.0.0
+
+ 4.0.0
+
+ spring-boot-3
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ 3.0.2
+ pom
+ import
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+
+
+ io.github.linpeilie
+ mapstruct-plus-spring-boot-starter
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ 17
+ 17
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+
+
+ io.github.linpeilie
+ mapstruct-plus-processor
+ ${mapstruct-plus.version}
+
+
+ org.projectlombok
+ lombok-mapstruct-binding
+ 0.2.0
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/Application.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/Application.java
new file mode 100644
index 0000000..024e286
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/Application.java
@@ -0,0 +1,13 @@
+package io.github.linpeilie;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class Application {
+
+ public static void main(String[] args) {
+ SpringApplication.run(Application.class, args);
+ }
+
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/StartUp.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/StartUp.java
new file mode 100644
index 0000000..096645a
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/StartUp.java
@@ -0,0 +1,29 @@
+package io.github.linpeilie;
+
+import io.github.linpeilie.model.Car;
+import io.github.linpeilie.model.CarDto;
+import io.github.linpeilie.model.CarType;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class StartUp
+ implements InitializingBean {
+
+ private Converter converter;
+
+ @Autowired
+ public void setConverter(final Converter converter) {
+ this.converter = converter;
+ }
+
+ @Override
+ public void afterPropertiesSet() throws Exception {
+ final Car car = new Car();
+ car.setType(CarType.OTHER);
+
+ final CarDto carDto = converter.convert(car, CarDto.class);
+ System.out.println(carDto);
+ }
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/StringToListStringConverter.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/StringToListStringConverter.java
new file mode 100644
index 0000000..faafac9
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/StringToListStringConverter.java
@@ -0,0 +1,12 @@
+package io.github.linpeilie;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class StringToListStringConverter {
+
+ public static List stringToListString(String str) {
+ return Arrays.asList(str.split(","));
+ }
+
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/Car.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/Car.java
new file mode 100644
index 0000000..594b973
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/Car.java
@@ -0,0 +1,18 @@
+package io.github.linpeilie.model;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import io.github.linpeilie.annotations.AutoMapping;
+import lombok.Data;
+
+@AutoMapper(target = CarDto.class)
+@Data
+public class Car {
+
+ private String make;
+ private SeatConfiguration seatConfiguration;
+ private CarType type;
+
+ @AutoMapping(target = "wheels", ignore = true)
+ private Wheels wheels;
+
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/CarDto.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/CarDto.java
new file mode 100644
index 0000000..ff78cf0
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/CarDto.java
@@ -0,0 +1,13 @@
+package io.github.linpeilie.model;
+
+import java.util.List;
+import lombok.Data;
+
+@Data
+public class CarDto {
+ private String make;
+ private SeatConfigurationDto seatConfiguration;
+ private String type;
+ private List wheels;
+
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/CarType.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/CarType.java
new file mode 100644
index 0000000..f71a9cb
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/CarType.java
@@ -0,0 +1,5 @@
+package io.github.linpeilie.model;
+
+public enum CarType {
+ SPORTS, OTHER
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/Goods.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/Goods.java
new file mode 100644
index 0000000..52e94b4
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/Goods.java
@@ -0,0 +1,12 @@
+package io.github.linpeilie.model;
+
+import lombok.Data;
+
+@Data
+public class Goods {
+
+ private String price;
+
+ private String takeDownTime;
+
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/GoodsDto.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/GoodsDto.java
new file mode 100644
index 0000000..7c6b38d
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/GoodsDto.java
@@ -0,0 +1,18 @@
+package io.github.linpeilie.model;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import io.github.linpeilie.annotations.AutoMapping;
+import java.util.Date;
+import lombok.Data;
+
+@Data
+@AutoMapper(target = Goods.class)
+public class GoodsDto {
+
+ @AutoMapping(target = "takeDownTime", dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date takeDownTime;
+
+ @AutoMapping(target = "price", numberFormat = "$#.00")
+ private int price;
+
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/MapModelA.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/MapModelA.java
new file mode 100644
index 0000000..66ca7ce
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/MapModelA.java
@@ -0,0 +1,15 @@
+package io.github.linpeilie.model;
+
+import io.github.linpeilie.annotations.AutoMapMapper;
+import lombok.Data;
+
+@Data
+@AutoMapMapper
+public class MapModelA {
+
+ private String str;
+ private int i1;
+ private Long l2;
+ private MapModelB mapModelB;
+
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/MapModelB.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/MapModelB.java
new file mode 100644
index 0000000..6fc9364
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/MapModelB.java
@@ -0,0 +1,12 @@
+package io.github.linpeilie.model;
+
+import io.github.linpeilie.annotations.AutoMapMapper;
+import java.util.Date;
+import lombok.Data;
+
+@Data
+@AutoMapMapper
+public class MapModelB {
+
+ private Date date;
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/SeatConfiguration.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/SeatConfiguration.java
new file mode 100644
index 0000000..17984c9
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/SeatConfiguration.java
@@ -0,0 +1,12 @@
+package io.github.linpeilie.model;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+@Data
+@AutoMapper(target = SeatConfigurationDto.class)
+public class SeatConfiguration {
+ private int numberOfSeats;
+ private SeatMaterial seatMaterial;
+
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/SeatConfigurationDto.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/SeatConfigurationDto.java
new file mode 100644
index 0000000..029e982
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/SeatConfigurationDto.java
@@ -0,0 +1,10 @@
+package io.github.linpeilie.model;
+
+import lombok.Data;
+
+@Data
+public class SeatConfigurationDto {
+ private int seatCount;
+ private String material;
+
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/SeatMaterial.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/SeatMaterial.java
new file mode 100644
index 0000000..b1ae989
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/SeatMaterial.java
@@ -0,0 +1,5 @@
+package io.github.linpeilie.model;
+
+public enum SeatMaterial {
+ LEATHER, FABRIC
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/User.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/User.java
new file mode 100644
index 0000000..b820578
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/User.java
@@ -0,0 +1,43 @@
+package io.github.linpeilie.model;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import io.github.linpeilie.annotations.AutoMappers;
+import io.github.linpeilie.annotations.AutoMapping;
+import io.github.linpeilie.annotations.AutoMappings;
+import java.util.Date;
+import java.util.List;
+import lombok.Data;
+
+@Data
+@AutoMappers({
+ @AutoMapper(target = UserDto.class),
+ @AutoMapper(target = UserVO.class)
+})
+public class User {
+
+ private String username;
+
+ private int age;
+ private boolean young;
+
+ @AutoMapping(targetClass = UserDto.class, target = "educations", expression = "java(java.lang.String.join(\",\", source.getEducationList()))")
+ private List educationList;
+
+ @AutoMappings({
+ @AutoMapping(targetClass = UserDto.class, target = "birthday", dateFormat = "yyyy-MM-dd HH:mm:ss"),
+ @AutoMapping(targetClass = UserVO.class, target = "birthday", ignore = true)
+ })
+ private Date birthday;
+
+ @AutoMapping(targetClass = UserDto.class, target = "assets", numberFormat = "$0.00")
+ private double assets;
+
+ @AutoMapping(target = "money", numberFormat = "$0.00")
+ private double money;
+
+ @AutoMappings({
+ @AutoMapping(targetClass = UserVO.class, target = "voField")
+ })
+ private String voField;
+
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/UserDto.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/UserDto.java
new file mode 100644
index 0000000..d16bacf
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/UserDto.java
@@ -0,0 +1,25 @@
+package io.github.linpeilie.model;
+
+import io.github.linpeilie.StringToListStringConverter;
+import io.github.linpeilie.annotations.AutoMapper;
+import io.github.linpeilie.annotations.AutoMapping;
+import lombok.Data;
+
+@Data
+@AutoMapper(target = User.class, uses = StringToListStringConverter.class)
+public class UserDto {
+
+ private String username;
+ private int age;
+ private boolean young;
+
+ @AutoMapping(target = "educationList")
+ private String educations;
+
+ private String birthday;
+
+ private String assets;
+
+ private String money;
+
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/UserVO.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/UserVO.java
new file mode 100644
index 0000000..e88c134
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/UserVO.java
@@ -0,0 +1,25 @@
+package io.github.linpeilie.model;
+
+import java.util.Date;
+import java.util.List;
+import lombok.Data;
+
+@Data
+public class UserVO {
+
+ private String username;
+
+ private int age;
+ private boolean young;
+
+ private List educationList;
+
+ private Date birthday;
+
+ private double assets;
+
+ private String voField;
+
+ private String money;
+
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/Wheel.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/Wheel.java
new file mode 100644
index 0000000..b2410a5
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/Wheel.java
@@ -0,0 +1,11 @@
+package io.github.linpeilie.model;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+
+@AutoMapper(target = WheelDto.class)
+@Data
+public class Wheel {
+ private WheelPosition position;
+ private int diameter;
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/WheelDto.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/WheelDto.java
new file mode 100644
index 0000000..59e7659
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/WheelDto.java
@@ -0,0 +1,10 @@
+package io.github.linpeilie.model;
+
+import lombok.Data;
+
+@Data
+public class WheelDto {
+ private String position;
+ private int diameter;
+
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/WheelPosition.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/WheelPosition.java
new file mode 100644
index 0000000..5ee2466
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/WheelPosition.java
@@ -0,0 +1,8 @@
+package io.github.linpeilie.model;
+
+public enum WheelPosition {
+ LEFT_FRONT,
+ RIGHT_FRONT,
+ LEFT_REAR,
+ RIGHT_REAR
+}
diff --git a/example/spring-boot-3/src/main/java/io/github/linpeilie/model/Wheels.java b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/Wheels.java
new file mode 100644
index 0000000..fcf9232
--- /dev/null
+++ b/example/spring-boot-3/src/main/java/io/github/linpeilie/model/Wheels.java
@@ -0,0 +1,38 @@
+package io.github.linpeilie.model;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Spliterator;
+import java.util.function.Consumer;
+
+public class Wheels implements Iterable {
+ private List wheelsList = new ArrayList<>();
+
+ public List getWheelsList() {
+ return wheelsList;
+ }
+
+ public void setWheelsList(List wheelsList) {
+ this.wheelsList = wheelsList;
+ }
+
+ public void add(final Wheel wheel) {
+ wheelsList.add(wheel);
+ }
+
+ @Override
+ public Iterator iterator() {
+ return getWheelsList().iterator();
+ }
+
+ @Override
+ public void forEach(Consumer super Wheel> action) {
+ getWheelsList().forEach(action);
+ }
+
+ @Override
+ public Spliterator spliterator() {
+ return getWheelsList().spliterator();
+ }
+}
diff --git a/example/spring-boot-3/src/test/java/io/github/linpeilie/QuickStartTest.java b/example/spring-boot-3/src/test/java/io/github/linpeilie/QuickStartTest.java
new file mode 100644
index 0000000..cea3859
--- /dev/null
+++ b/example/spring-boot-3/src/test/java/io/github/linpeilie/QuickStartTest.java
@@ -0,0 +1,138 @@
+package io.github.linpeilie;
+
+import cn.hutool.core.date.DateUtil;
+import io.github.linpeilie.model.Goods;
+import io.github.linpeilie.model.GoodsDto;
+import io.github.linpeilie.model.MapModelA;
+import io.github.linpeilie.model.User;
+import io.github.linpeilie.model.UserDto;
+import io.github.linpeilie.model.UserVO;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+public class QuickStartTest {
+
+ @Autowired
+ private Converter converter;
+
+ @Test
+ public void test() {
+ Map mapModel1 = new HashMap<>();
+ mapModel1.put("str", "1jkf1ijkj3f");
+ mapModel1.put("i1", 111);
+ mapModel1.put("l2", 11231);
+
+ Map mapModel2 = new HashMap<>();
+ mapModel2.put("date", DateUtil.parse("2023-02-23 01:03:23"));
+
+ mapModel1.put("mapModelB", mapModel2);
+
+ final MapModelA mapModelA = converter.convert(mapModel1, MapModelA.class);
+ System.out.println(mapModelA); // MapModelA(str=1jkf1ijkj3f, i1=111, l2=11231, mapModelB=MapModelB(date=2023-02-23 01:03:23))
+ }
+
+
+ @Test
+ public void ueseTest() {
+ UserDto userDto = new UserDto();
+ userDto.setEducations("1,2,3");
+
+ final User user = converter.convert(userDto, User.class);
+ System.out.println(user.getEducationList()); // [1, 2, 3]
+
+ assert user.getEducationList().size() == 3;
+ }
+
+ @Test
+ public void numberFormatTest() {
+ GoodsDto goodsDto = new GoodsDto();
+ goodsDto.setPrice(9);
+
+ final Goods goods = converter.convert(goodsDto, Goods.class);
+
+ System.out.println(goods.getPrice()); // $9.00
+
+ assert "$9.00".equals(goods.getPrice());
+ }
+
+ @Test
+ public void dateFormatTest() throws ParseException {
+ final GoodsDto goodsDto = new GoodsDto();
+
+ final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ final String dateString = "2023-02-23 23:27:37";
+ final Date date = simpleDateFormat.parse(dateString);
+
+ goodsDto.setTakeDownTime(date);
+
+ final Goods goods = converter.convert(goodsDto, Goods.class);
+
+ System.out.println(goods.getTakeDownTime()); // 2023-02-23 23:27:37
+
+ assert dateString.equals(goods.getTakeDownTime());
+ }
+
+ @Test
+ public void expressionFormatTest() {
+ User user = new User();
+ List list = new ArrayList<>();
+ list.add("1");
+ list.add("2");
+ list.add("3");
+ user.setEducationList(list);
+
+ final UserDto userDto = converter.convert(user, UserDto.class);
+ System.out.println(userDto.getEducations());
+
+ assert "1,2,3".equals(userDto.getEducations());
+ }
+
+ @Test
+ public void multiClassConvertTest() {
+ User user = new User();
+ List list = new ArrayList<>();
+ list.add("1");
+ list.add("2");
+ list.add("3");
+ user.setEducationList(list);
+
+ user.setUsername("Nick");
+ user.setAge(12);
+ user.setYoung(true);
+ user.setBirthday(DateUtil.parseDateTime("2023-02-23 02:01:43"));
+ user.setAssets(123.234);
+ user.setVoField("vofieldfff");
+ user.setMoney(12543.123);
+
+ final UserVO userVo = converter.convert(user, UserVO.class);
+ System.out.println(userVo);
+ assert user.getUsername().equals(userVo.getUsername());
+ assert user.getAge() == userVo.getAge();
+ assert user.isYoung() == userVo.isYoung();
+ assert userVo.getBirthday() == null;
+ assert user.getAssets() == userVo.getAssets();
+ assert user.getVoField().equals(userVo.getVoField());
+ assert userVo.getMoney().equals("$12543.12");
+
+ final UserDto userDto = converter.convert(user, UserDto.class);
+ System.out.println(userDto);
+
+ assert user.getUsername().equals(userDto.getUsername());
+ assert user.getAge() == userDto.getAge();
+ assert user.isYoung() == userDto.isYoung();
+ assert userDto.getEducations().equals("1,2,3");
+ assert userDto.getBirthday().equals("2023-02-23 02:01:43");
+ assert userDto.getAssets().equals("$123.23");
+ assert userDto.getMoney().equals("$12543.12");
+ }
+
+}
diff --git a/example/spring-boot-with-lombok/pom.xml b/example/spring-boot-with-lombok/pom.xml
index dfed789..d842cdd 100644
--- a/example/spring-boot-with-lombok/pom.xml
+++ b/example/spring-boot-with-lombok/pom.xml
@@ -17,6 +17,18 @@
UTF-8
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ 2.7.0
+ pom
+ import
+
+
+
+
org.springframework.boot
diff --git a/example/spring-boot/pom.xml b/example/spring-boot/pom.xml
index 7a24341..ab78050 100644
--- a/example/spring-boot/pom.xml
+++ b/example/spring-boot/pom.xml
@@ -17,6 +17,18 @@
UTF-8
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ 2.7.0
+ pom
+ import
+
+
+
+
org.springframework.boot
@@ -32,5 +44,25 @@
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ 1.8
+ 1.8
+
+
+ io.github.linpeilie
+ mapstruct-plus-processor
+ ${mapstruct-plus.version}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/mapstruct-plus-spring-boot-starter/pom.xml b/mapstruct-plus-spring-boot-starter/pom.xml
index 340c84a..852a752 100644
--- a/mapstruct-plus-spring-boot-starter/pom.xml
+++ b/mapstruct-plus-spring-boot-starter/pom.xml
@@ -16,7 +16,7 @@
8
8
UTF-8
- 2.4.5
+ 2.7.9
diff --git a/pom.xml b/pom.xml
index 917b24c..faabdfd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,7 +17,7 @@
- 1.1.1
+ 1.1.2
8
8
UTF-8