diff --git a/pom.xml b/pom.xml index d25c317..da7f5f9 100644 --- a/pom.xml +++ b/pom.xml @@ -13,10 +13,11 @@ com.imyeyu.spring timi-spring - 0.0.2 + 0.0.3 jar + 21 3.4.0 21 21 diff --git a/src/main/java/com/imyeyu/spring/TimiSpring.java b/src/main/java/com/imyeyu/spring/TimiSpring.java index d170fe3..affff29 100644 --- a/src/main/java/com/imyeyu/spring/TimiSpring.java +++ b/src/main/java/com/imyeyu/spring/TimiSpring.java @@ -14,9 +14,12 @@ import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanWrapper; +import org.springframework.beans.BeanWrapperImpl; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; +import java.beans.PropertyDescriptor; import java.io.IOException; import java.io.OutputStream; import java.nio.charset.StandardCharsets; @@ -491,4 +494,17 @@ public class TimiSpring { } return new RequestRange(start, end); } + + public static void copyPropertiesNotNull(Object source, Object target) { + BeanWrapper srcBean = new BeanWrapperImpl(source); + BeanWrapper targetBean = new BeanWrapperImpl(target); + + for (PropertyDescriptor pd : srcBean.getPropertyDescriptors()) { + String propertyName = pd.getName(); + Object srcValue = srcBean.getPropertyValue(propertyName); + if (srcValue != null && targetBean.isWritableProperty(propertyName)) { + targetBean.setPropertyValue(propertyName, srcValue); + } + } + } } diff --git a/src/main/java/com/imyeyu/spring/annotation/RequestSingleParam.java b/src/main/java/com/imyeyu/spring/annotation/RequestSingleParam.java index cc449b2..86364cb 100644 --- a/src/main/java/com/imyeyu/spring/annotation/RequestSingleParam.java +++ b/src/main/java/com/imyeyu/spring/annotation/RequestSingleParam.java @@ -11,10 +11,12 @@ import java.lang.annotation.Target; * * @author 夜雨 * @version 2023-08-09 10:36 + * @deprecated 0.0.3 过时,0.0.5 移除,单参数建议 url 传参 */ @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) @Documented +@Deprecated public @interface RequestSingleParam { } diff --git a/src/main/java/com/imyeyu/spring/annotation/RequestSingleParamResolver.java b/src/main/java/com/imyeyu/spring/annotation/RequestSingleParamResolver.java index 9adb719..f254298 100644 --- a/src/main/java/com/imyeyu/spring/annotation/RequestSingleParamResolver.java +++ b/src/main/java/com/imyeyu/spring/annotation/RequestSingleParamResolver.java @@ -20,8 +20,10 @@ import org.springframework.web.method.support.ModelAndViewContainer; * * @author 夜雨 * @since 2025-10-13 16:29 + * @deprecated 0.0.3 过时,0.0.5 移除,单参数建议 url 传参 */ @Component +@Deprecated public class RequestSingleParamResolver implements HandlerMethodArgumentResolver { /**