NutzCN Logo
问答 一个小建议关于@Param
发布于 173天前 作者 阿强 269 次浏览 复制 上一个帖子 下一个帖子
标签: nutzwk

是否可以抽时间丰富一下比如:
type指定值类型(不一定没用,比如一张允许修改字段的表需要用json来代替实例类以生成sql进行操作)
listType数组或集合值中包含值的类型
List<'Param'> properties 指定某类型中的多个属性

range范围内值(ex1:[1,2,3],ex2:[DemoEnum.demo1,demo2])
或ranges=[{condition:"$args[someoneParam]>=0",values:[1,2,3]},{condition:"$args[someoneParam]<0",values:[5]}]采用内置表达式触发条件范围值

以及required(这个因为经常用已经把swaggerApiParam中的required拿来用了)

disable(修改某数据时仅其中一列无需修改可以调用updateIgoreNull此时需要set无需修改的property为null,结合properties:demoProperty:disabled:true来解决)
等多样化配置

2 回复

我觉得你把想要代码写一下,更直观

这边是一个基础的想法,可能有不恰当的引喻
之前使用spring时为方便开发也有写过一些修改

//notepad++
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package org.nutz.mvc.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.PARAMETER, ElementType.FIELD})
@Documented
public @interface Param {
    String name();

    String dfmt() default "";

    String df() default "//NOT EXIST IN//";

    String locale() default "";

    boolean array_auto_split() default true;
	
	/**
	* 对应参数的类型(有些业务场景用到的JSON接收而不是DTO类,比如用户自定义表的业务场景)
	*/
	String type() default "java.land.String";
	
	/**
	* 集合类型参数中对象的类型
	*/
	String listType() default "string";
	
	
	/**
	* 该参数下的属性
	* paramRule{
	* 类型String type,
	* 长度大小比对int max,int min
	* 正则匹配String reg
	* 等
	*}
	*/
	Collection<ParamRule> properties() default null;
	
	
	boolean required;
	
	/**
	* 禁用后调用方法是直接过滤参数传为null或0 "" []等
	*/
	boolean disabled;
	
}

添加回复
请先登陆
回到顶部