zoukankan      html  css  js  c++  java
  • @RequestMapping中的注解

    在org.springframework.spring-web的jar包中在以下层级下:

    org.springframework.web.bind.annotation;

    //
    // Source code recreated from a .class file by IntelliJ IDEA
    // (powered by Fernflower decompiler)
    //
    
    package org.springframework.web.bind.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;
    import org.springframework.core.annotation.AliasFor;
    
    @Target({ElementType.METHOD})
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @RequestMapping(
        method = {RequestMethod.GET}
    )
    public @interface GetMapping {
        @AliasFor(
            annotation = RequestMapping.class
        )
        String name() default "";
    
        @AliasFor(
            annotation = RequestMapping.class
        )
        String[] value() default {};
    
        @AliasFor(
            annotation = RequestMapping.class
        )
        String[] path() default {};
    
        @AliasFor(
            annotation = RequestMapping.class
        )
        String[] params() default {};
    
        @AliasFor(
            annotation = RequestMapping.class
        )
        String[] headers() default {};
    
        @AliasFor(
            annotation = RequestMapping.class
        )
        String[] consumes() default {};
    
        @AliasFor(
            annotation = RequestMapping.class
        )
        String[] produces() default {};
    }
    

     一些常见的MediaType

    //
    // Source code recreated from a .class file by IntelliJ IDEA
    // (powered by Fernflower decompiler)
    //
    
    package org.springframework.http;
    
    import java.io.Serializable;
    import java.nio.charset.Charset;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.Iterator;
    import java.util.LinkedHashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.function.Function;
    import java.util.stream.Collectors;
    import org.springframework.lang.Nullable;
    import org.springframework.util.Assert;
    import org.springframework.util.CollectionUtils;
    import org.springframework.util.InvalidMimeTypeException;
    import org.springframework.util.MimeType;
    import org.springframework.util.MimeTypeUtils;
    import org.springframework.util.StringUtils;
    import org.springframework.util.MimeType.SpecificityComparator;
    
    public class MediaType extends MimeType implements Serializable {
        private static final long serialVersionUID = 2069937152339670231L;
        public static final MediaType ALL = valueOf("*/*");
        public static final String ALL_VALUE = "*/*";
        public static final MediaType APPLICATION_ATOM_XML = valueOf("application/atom+xml");
        public static final String APPLICATION_ATOM_XML_VALUE = "application/atom+xml";
        public static final MediaType APPLICATION_FORM_URLENCODED = valueOf("application/x-www-form-urlencoded");
        public static final String APPLICATION_FORM_URLENCODED_VALUE = "application/x-www-form-urlencoded";
        public static final MediaType APPLICATION_JSON = valueOf("application/json");
        public static final String APPLICATION_JSON_VALUE = "application/json";
        public static final MediaType APPLICATION_JSON_UTF8 = valueOf("application/json;charset=UTF-8");
        public static final String APPLICATION_JSON_UTF8_VALUE = "application/json;charset=UTF-8";
        public static final MediaType APPLICATION_OCTET_STREAM = valueOf("application/octet-stream");
        public static final String APPLICATION_OCTET_STREAM_VALUE = "application/octet-stream";
        public static final MediaType APPLICATION_PDF = valueOf("application/pdf");
        public static final String APPLICATION_PDF_VALUE = "application/pdf";
        public static final MediaType APPLICATION_PROBLEM_JSON = valueOf("application/problem+json");
        public static final String APPLICATION_PROBLEM_JSON_VALUE = "application/problem+json";
        public static final MediaType APPLICATION_PROBLEM_JSON_UTF8 = valueOf("application/problem+json;charset=UTF-8");
        public static final String APPLICATION_PROBLEM_JSON_UTF8_VALUE = "application/problem+json;charset=UTF-8";
        public static final MediaType APPLICATION_PROBLEM_XML = valueOf("application/problem+xml");
        public static final String APPLICATION_PROBLEM_XML_VALUE = "application/problem+xml";
        public static final MediaType APPLICATION_RSS_XML = valueOf("application/rss+xml");
        public static final String APPLICATION_RSS_XML_VALUE = "application/rss+xml";
        public static final MediaType APPLICATION_STREAM_JSON = valueOf("application/stream+json");
        public static final String APPLICATION_STREAM_JSON_VALUE = "application/stream+json";
        public static final MediaType APPLICATION_XHTML_XML = valueOf("application/xhtml+xml");
        public static final String APPLICATION_XHTML_XML_VALUE = "application/xhtml+xml";
        public static final MediaType APPLICATION_XML = valueOf("application/xml");
        public static final String APPLICATION_XML_VALUE = "application/xml";
        public static final MediaType IMAGE_GIF = valueOf("image/gif");
        public static final String IMAGE_GIF_VALUE = "image/gif";
        public static final MediaType IMAGE_JPEG = valueOf("image/jpeg");
        public static final String IMAGE_JPEG_VALUE = "image/jpeg";
        public static final MediaType IMAGE_PNG = valueOf("image/png");
        public static final String IMAGE_PNG_VALUE = "image/png";
        public static final MediaType MULTIPART_FORM_DATA = valueOf("multipart/form-data");
        public static final String MULTIPART_FORM_DATA_VALUE = "multipart/form-data";
        public static final MediaType TEXT_EVENT_STREAM = valueOf("text/event-stream");
        public static final String TEXT_EVENT_STREAM_VALUE = "text/event-stream";
        public static final MediaType TEXT_HTML = valueOf("text/html");
        public static final String TEXT_HTML_VALUE = "text/html";
        public static final MediaType TEXT_MARKDOWN = valueOf("text/markdown");
        public static final String TEXT_MARKDOWN_VALUE = "text/markdown";
        public static final MediaType TEXT_PLAIN = valueOf("text/plain");
        public static final String TEXT_PLAIN_VALUE = "text/plain";
        public static final MediaType TEXT_XML = valueOf("text/xml");
        public static final String TEXT_XML_VALUE = "text/xml";
        private static final String PARAM_QUALITY_FACTOR = "q";
        public static final Comparator<MediaType> QUALITY_VALUE_COMPARATOR = (mediaType1, mediaType2) -> {
            double quality1 = mediaType1.getQualityValue();
            double quality2 = mediaType2.getQualityValue();
            int qualityComparison = Double.compare(quality2, quality1);
            if (qualityComparison != 0) {
                return qualityComparison;
            } else if (mediaType1.isWildcardType() && !mediaType2.isWildcardType()) {
                return 1;
            } else if (mediaType2.isWildcardType() && !mediaType1.isWildcardType()) {
                return -1;
            } else if (!mediaType1.getType().equals(mediaType2.getType())) {
                return 0;
            } else if (mediaType1.isWildcardSubtype() && !mediaType2.isWildcardSubtype()) {
                return 1;
            } else if (mediaType2.isWildcardSubtype() && !mediaType1.isWildcardSubtype()) {
                return -1;
            } else if (!mediaType1.getSubtype().equals(mediaType2.getSubtype())) {
                return 0;
            } else {
                int paramsSize1 = mediaType1.getParameters().size();
                int paramsSize2 = mediaType2.getParameters().size();
                return paramsSize2 < paramsSize1 ? -1 : (paramsSize2 == paramsSize1 ? 0 : 1);
            }
        };
        public static final Comparator<MediaType> SPECIFICITY_COMPARATOR = new SpecificityComparator<MediaType>() {
            protected int compareParameters(MediaType mediaType1, MediaType mediaType2) {
                double quality1 = mediaType1.getQualityValue();
                double quality2 = mediaType2.getQualityValue();
                int qualityComparison = Double.compare(quality2, quality1);
                return qualityComparison != 0 ? qualityComparison : super.compareParameters(mediaType1, mediaType2);
            }
        };
    
        public MediaType(String type) {
            super(type);
        }
    
        public MediaType(String type, String subtype) {
            super(type, subtype, Collections.emptyMap());
        }
    
        public MediaType(String type, String subtype, Charset charset) {
            super(type, subtype, charset);
        }
    
        public MediaType(String type, String subtype, double qualityValue) {
            this(type, subtype, Collections.singletonMap("q", Double.toString(qualityValue)));
        }
    
        public MediaType(MediaType other, Charset charset) {
            super(other, charset);
        }
    
        public MediaType(MediaType other, @Nullable Map<String, String> parameters) {
            super(other.getType(), other.getSubtype(), parameters);
        }
    
        public MediaType(String type, String subtype, @Nullable Map<String, String> parameters) {
            super(type, subtype, parameters);
        }
    
        protected void checkParameters(String attribute, String value) {
            super.checkParameters(attribute, value);
            if ("q".equals(attribute)) {
                value = this.unquote(value);
                double d = Double.parseDouble(value);
                Assert.isTrue(d >= 0.0D && d <= 1.0D, "Invalid quality value "" + value + "": should be between 0.0 and 1.0");
            }
    
        }
    
        public double getQualityValue() {
            String qualityFactory = this.getParameter("q");
            return qualityFactory != null ? Double.parseDouble(this.unquote(qualityFactory)) : 1.0D;
        }
    
        public boolean includes(@Nullable MediaType other) {
            return super.includes(other);
        }
    
        public boolean isCompatibleWith(@Nullable MediaType other) {
            return super.isCompatibleWith(other);
        }
    
        public MediaType copyQualityValue(MediaType mediaType) {
            if (!mediaType.getParameters().containsKey("q")) {
                return this;
            } else {
                Map<String, String> params = new LinkedHashMap(this.getParameters());
                params.put("q", mediaType.getParameters().get("q"));
                return new MediaType(this, params);
            }
        }
    
        public MediaType removeQualityValue() {
            if (!this.getParameters().containsKey("q")) {
                return this;
            } else {
                Map<String, String> params = new LinkedHashMap(this.getParameters());
                params.remove("q");
                return new MediaType(this, params);
            }
        }
    
        public static MediaType valueOf(String value) {
            return parseMediaType(value);
        }
    
        public static MediaType parseMediaType(String mediaType) {
            MimeType type;
            try {
                type = MimeTypeUtils.parseMimeType(mediaType);
            } catch (InvalidMimeTypeException var4) {
                throw new InvalidMediaTypeException(var4);
            }
    
            try {
                return new MediaType(type.getType(), type.getSubtype(), type.getParameters());
            } catch (IllegalArgumentException var3) {
                throw new InvalidMediaTypeException(mediaType, var3.getMessage());
            }
        }
    
        public static List<MediaType> parseMediaTypes(@Nullable String mediaTypes) {
            if (!StringUtils.hasLength(mediaTypes)) {
                return Collections.emptyList();
            } else {
                String[] tokens = StringUtils.tokenizeToStringArray(mediaTypes, ",");
                List<MediaType> result = new ArrayList(tokens.length);
                String[] var3 = tokens;
                int var4 = tokens.length;
    
                for(int var5 = 0; var5 < var4; ++var5) {
                    String token = var3[var5];
                    result.add(parseMediaType(token));
                }
    
                return result;
            }
        }
    
        public static List<MediaType> parseMediaTypes(@Nullable List<String> mediaTypes) {
            if (CollectionUtils.isEmpty(mediaTypes)) {
                return Collections.emptyList();
            } else if (mediaTypes.size() == 1) {
                return parseMediaTypes((String)mediaTypes.get(0));
            } else {
                List<MediaType> result = new ArrayList(8);
                Iterator var2 = mediaTypes.iterator();
    
                while(var2.hasNext()) {
                    String mediaType = (String)var2.next();
                    result.addAll(parseMediaTypes(mediaType));
                }
    
                return result;
            }
        }
    
        public static List<MediaType> asMediaTypes(List<MimeType> mimeTypes) {
            return (List)mimeTypes.stream().map(MediaType::asMediaType).collect(Collectors.toList());
        }
    
        public static MediaType asMediaType(MimeType mimeType) {
            return mimeType instanceof MediaType ? (MediaType)mimeType : new MediaType(mimeType.getType(), mimeType.getSubtype(), mimeType.getParameters());
        }
    
        public static String toString(Collection<MediaType> mediaTypes) {
            return MimeTypeUtils.toString(mediaTypes);
        }
    
        public static void sortBySpecificity(List<MediaType> mediaTypes) {
            Assert.notNull(mediaTypes, "'mediaTypes' must not be null");
            if (mediaTypes.size() > 1) {
                mediaTypes.sort(SPECIFICITY_COMPARATOR);
            }
    
        }
    
        public static void sortByQualityValue(List<MediaType> mediaTypes) {
            Assert.notNull(mediaTypes, "'mediaTypes' must not be null");
            if (mediaTypes.size() > 1) {
                mediaTypes.sort(QUALITY_VALUE_COMPARATOR);
            }
    
        }
    
        public static void sortBySpecificityAndQuality(List<MediaType> mediaTypes) {
            Assert.notNull(mediaTypes, "'mediaTypes' must not be null");
            if (mediaTypes.size() > 1) {
                mediaTypes.sort(SPECIFICITY_COMPARATOR.thenComparing(QUALITY_VALUE_COMPARATOR));
            }
    
        }
    }
    

     

    param 貌似都

    RequestParam 

    package org.springframework.web.bind.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;
    import org.springframework.core.annotation.AliasFor;
    
    @Target({ElementType.PARAMETER})
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    public @interface RequestParam {
        @AliasFor("name")
        String value() default "";
    
        @AliasFor("value")
        String name() default "";
    
        boolean required() default true;
    
        String defaultValue() default "
    		
    		
    ue000ue001ue002
    				
    ";
    }
    

      

  • 相关阅读:
    Tomcat + Mysql高并发配置优化
    Qt Widget 利用 Qt4.5 实现酷炫透明窗体
    使用VC2005编译真正的静态Qt4.4.3程序 good
    详解 Qt 线程间共享数据(使用signal/slot传递数据,线程间传递信号会立刻返回,但也可通过connect改变)
    浅析在QtWidget中自定义Model(beginInsertRows()和endInsertRows()是空架子,类似于一种信号,用来通知底层)
    英国著名芯片厂商与苹果谈崩 中资收购机会来了!
    跨站脚本攻击(XSS)
    Kafka 协议实现中的内存优化
    读取配置信息
    英语面试准备
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/11433581.html
Copyright © 2011-2022 走看看