Custom annotations to receive post requests with a single parameter

Due to the needs of business scenarios, sometimes it is necessary to distinguish between get and post requests
For example, when deleting, try to use post requests (the company standard is to only use get and post requests)
Commonly used deletions: @Getmapping followed by @PathVariable

The annotation defined is named: @FewPostParam
The source code is as follows:


import org.springframework.core.annotation.AliasFor;
import org.springframework.web.bind.annotation.ValueConstants;
import java.lang.annotation.*;


@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface FewPostParam {
    
    
    /**
     * Alias for {@link #name}.
     */
    @AliasFor("name")
    String value() default "";

    /**
     * The name of the request parameter to bind to.
     *
     * @since 4.2
     */
    @AliasFor("value")
    String name() default "";

    /**
     * Whether the parameter is required.
     * <p>Default is {@code true}, leading to an exception thrown in case
     * of the parameter missing in the request. Switch this to {@code false}
     * if you prefer a {@code null} in case of the parameter missing.
     * <p>Alternatively, provide a {@link #defaultValue() defaultValue},
     * which implicitly sets this flag to {@code false}.
     */
    boolean required() default true;

    /**
     * The default value to use as a fallback when the request parameter value
     * is not provided or empty. Supplying a default value implicitly sets
     * {@link #required()} to false.
     */
    String defaultValue() default ValueConstants.DEFAULT_NONE;
}

The usage scenarios are as follows:
Insert image description here
Package it into dependencies and you can use it

Guess you like

Origin blog.csdn.net/victo_chao/article/details/124840886