This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Restlight Core

esa.restlight.core.RestlightRestlight架构中的Restlight Core模块的入口类, 在Restlight Server 基础上丰富了更多的功能
  • Controller
  • ControllerAdvice
  • HandlerInterceptor: 拦截器
  • ExceptionHandler: 全局异常处理器
  • BeanValidation: 参数校验
  • ArgumentResolver: 参数解析扩展
  • ArgumentResolverAdvice: 参数解析扩展
  • ReturnValueResolver: 返回值解析扩展
  • ReturnValueResolverAdvice: 返回值解析扩展
  • RequestSerializer: 请求序列化器(通常负责反序列化Body内容)
  • ResposneSerializer: 响应序列化器(通常负责序列化响应对象到Body)
  • 内置Jackson, Fastjson, Gson, ProtoBuf序列化支持

Restlight CoreRestlight ServerRoute的业务处理部分做了封装, 完成拦截器,参数绑定,反序列化,返回值解析,序列化等一系列功能。

Restlight Core为核心实现, 实际使用时需配合Restlight SpringMVC以及Restlight JAX-RS实现。

由于Restlight Core为标准实现, 需要配合Restlight SpringMVC或者Restlight JAX-RS一起使用

1 - 配合 JAX-RS标准

基于Restlight Core为兼容JAX-RS注解使用习惯的扩展实现

eg.

引入依赖

<dependency>
	<groupId>io.esastack</groupId>
	<artifactId>restlight-core</artifactId>
	<version>${restlight.version}</version>
</dependency>
<dependency>
	<groupId>io.esastack</groupId>
	<artifactId>restlight-jaxrs-provider</artifactId>
	<version>${restlight.version}</version>
</dependency>

编写Controller

@Path("/hello")
public class HelloController {

    @Path("/restlight")
    @GET
    @Produces(MediaType.TEXT_PLAIN_VALUE)
    public String restlight() {
        return "Hello Restlight!";
    }
}

使用Restlight启动Server

Restlight.forServer()
        .daemon(false)
        .deployments()
        .addController(HelloController.class)
        .server()
        .start();

启动并访问: http://localhost:8080/hello 即可看到输出:

Hello Restlight!

2 - 配合 SpringMVC标准

基于Restlight Core为兼容SpringMVC注解使用习惯的扩展实现

eg.

引入依赖

<dependency>
	<groupId>io.esastack</groupId>
	<artifactId>restlight-core</artifactId>
	<version>${restlight.version}</version>
</dependency>
<dependency>
	<groupId>io.esastack</groupId>
	<artifactId>restlight-springmvc-provider</artifactId>
	<version>${restlight.version}</version>
</dependency>

编写Controller

@RequestMapping("/hello")
public class HelloController {

    @GetMapping(value = "/restlight")
    public String restlight() {
        return "Hello Restlight!";
    }
}

使用Restlight启动Server

Restlight.forServer()
        .daemon(false)
        .deployments()
        .addController(HelloController.class)
        .server()
        .start();

启动并访问: http://localhost:8080/hello 即可看到输出:

Hello Restlight!