十、注解路由
一、注解概述
- 路由注解
注解点:
类 、 方法path/value:
路由的锚点method:
http请求的方法类型singleton:
true: 单例模式的路由,每次都会使用路由注册时的实例, false: 每次都会创建新的实例用于路由处理。
@Head
请求头注解注解点:
方法的参数name:
提取请求头的的名称@Cookie
Cookie 注解 方法的参数name:
提取 Cookie 参数的名称@Body
请求报文注解注解点:
方法的参数
二、使用说明
参数注解 @Param(String value)
- 将指定名称 HTTP 请求参数注入到被注解的方法的入参上。
参数注解 @Cookie(String value)
- 将指定名称 HTTP 请求Cookie注入到被注解的方法的入参上。
这样请求Cookie中的名为`_gz`的参数会被注入到aa上。
参数注解 @Head(String value)
- 将指定名称 HTTP 请求头注入到被注解的方法的入参上。
-
- 将指定名称 HTTP 请求的报文内容注入到被注解的方法的入参上,也就是 Http 请求的 body 段内容, 一般应用在 POST 请求上。
```public String body(@Body String aa)```
自动参数注入
请求相关对象的自动注入
- 如果被@page注解的方法的参数有:
HttpRequest
,HttpResponse
,HttpSession
三种类型的参数,则框架会自动注入当前请求对应的对象到方法的入参上。
- 如果被@page注解的方法的参数有:
请求参数的自动注入
- 如果被@page注解的方法中的参数没有指定任何参数注解,则会按照请求参数的顺序,将参数注入到方法的入参上, 但只限于路径参数 或者 以数字方式命名的参数。
这样请求参数中的名为`1`的参数会被注入到aa上,同样参数中的名为`2`的参数会被注入到bb上。
-
- 所有 Java 基本类型的转换都是原型转换,例如:字符串:“123”,可以被转换为整形:123。
- 支持 double, float, integer, boolean, long, short, Character。
- 支持集合类型的转换 Collection、Map,同时如果指定了范型,请求中对应参数会按照范型约束为原型转换成指定的对象。
- 支持自定义对象的转换,会将请求中参数的字符串按照 JSON 的形式转换成指定对象。
- 如果转换失败会抛出异常。
- 所有 Java 基本类型的转换都是原型转换,例如:字符串:“123”,可以被转换为整形:123。
路由响应的使用
- 使用
HttpResponse
类中的 write 方法,可以向响应中添加内容, 但后一次添加的内容会覆盖前一次添加的内容。 - 使用
Router
注解的方法的返回值会自动添加到响应中。- 返回值如果是
String
类型则直接添加到响应中。 - 返回值如果是
byte[]
类型则直接添加到响应中。 - 返回值如果是
自定义的对象
则会转换成 JSON 形式添加到响应中。
- 返回值如果是
- 使用