关于Spring的一些常用使用

@RequestMapping

@RequestMapping(value = "/myWeb/v1", produces = {"application/json;charset=UTF-8"})

RequestMapping是一个用来处理请求地址映射的注解,可以用在类或者方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。源码中@Target注解:

@Target({ElementType.METHOD, ElementType.TYPE})

RequestMapping注解有7个属性(value等同于path只算一个):

public @interface RequestMapping {
    //指定映射的名称
    String name() default "";
    //指定请求路径的地址
    @AliasFor("path")
    String[] value() default {};
    //同value
    @AliasFor("value")
    String[] path() default {};
    //指定请求的方式,是一个RequsetMethod数组,可以配置多个方法
    RequestMethod[] method() default {};
    //指定参数的类型
    String[] params() default {};
    //指定包含的header值
    String[] headers() default {};
    //指定数据请求的格式
    String[] consumes() default {};
    //指定返回的内容类型
    String[] produces() default {};
 
}
  1. name

       可以看到注解中的属性除了 name() 返回的字符串,其它的方法均返回数组,也就是可以定义多个属性值,例如 value() 和 path() 都可以同时定义多个字符串值来接收多个URL请求。

       2. value

       默认RequestMapping("str")即为value的值。value的uri可以指定为普通的具体值,可以指定为含有某变量的一类值,也可以指定为含正则表达式的一类值。

       e.g. value="/products" ,value="/products/{productId}" ,value="/products/{productId}_{levelUd:\\d*}"

       3. method

      method属性定义了请求的方式,GET、POST、PUT、DELETE等。如果它定义了多个值,那么就可以适应多种请求方式。

       e.g. method={RequestMethod.POST, RequestMethod.GET}

       4. comsumes

       comsumes指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;即方法仅处理request Content-Type为“application/json”类型的请求。

       5 produces

       produces属性指定了返回值类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回,它不但可以设置返回值类型还可以设定返回值的字符编码。

       e.g. produces="application/json" ,produces = {"application/json;charset=UTF-8"}

       6. params

       该属性表示请求参数,也就是追加在URL上的键值对,多个请求参数以&隔开。@RequestMapping 中可以使用 params 来限制请求参数,来实现进一步的过滤请求。

       7. headers

       header属性表示请求头,可以限制客户端发来的请求。

 

用于HTTP协义交互的信息被称为HTTP报文,客户端发送的HTTP报文被称为请求报文,服务器发回给客户端的HTTP报文称为响应报文,报文由报文头部和报文体组成。

 

请求头部(Request Headers):请求头包含许多有关客户端环境和请求正文的信息,例如浏览器支持的语言、请求的服务器地址、客户端的操作系统等。

 

响应头部(Rsponse Headers):响应头也包含许多有用的信息,包括服务器类型、日期、响应内容的类型及编码,响应内容的长度等等。

 

参数绑定@RequestParam

public String getMySonList(@RequestParam String page, @RequestParam String page_size, @RequestParam String MyName, HttpServletRequest request, @RequestParam(required = false) String MyAge)

       @RequestParam 注解配合 @RequestMapping 一起使用的场合,可以将请求的参数同处理方法的参数绑定在一起。 

       @RequestParam 注解使用的时候可以有一个值,也可以没有值。这个值指定了需要被映射到处理方法参数的请求参数。

       @RequestParam 注解的 required 这个参数定义了参数值是否是必须要传的。 

       @RequestParam 的 defaultValue 取值就是用来给取值为空的请求参数提供一个默认值的。

    @RequestParam(value = "abc", defaultValue = "def") String aaa
   在这行代码中,如果 abc 这个请求参数为空,那么外部处理方法就会接收 def 这个默认值作为其参数。

断言工具类Assert

org.springframework.util.Assert;

       Assert,通常用于数据合法性检查。简化了数据的判断。

if(page == null || page.equals("")){
    throw new IllegalArgumentException("page must be provided!");
}
 
Assert.hasText(page, "page must be provided!");

常用的Assert类中的断言方法:

Assert.notNull(Object object, "object is required")    -    对象非空 
Assert.isTrue(Object object, "object must be true")   -    对象必须为true   
Assert.notEmpty(Collection collection, "collection must not be empty")    -    集合非空  
Assert.hasLength(String text, "text must be specified")   -    字符不为null且字符长度不为0   
Assert.hasText(String text, "text must not be empty")    -     text 不为null且必须至少包含一个非空格的字符  
Assert.isInstanceOf(Class clazz, Object obj, "clazz must be of type [clazz]")    -    obj必须能被正确造型成为clazz 指定的类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值