转载

微服框架 Reactor-Guice 0.11 发布,自动扫描 Controller Service

Reactor-Guice 是一个基于 Reactor 和 Guice 的网络框架, 0.11 功能更新如下

1. 自动扫描带有注解 @Controller 的类,将带类里有 @Path 的方法,并加入到路由

2. 自动扫描带有注解 @Service 的类,将类添加到 Guice 的 Module 中 bind,在其他类里通 @Inject 来注入

通过 Maven 引入

<dependency>
    <groupId>com.doopp</groupId>
    <artifactId>reactor-guice</artifactId>
    <version>0.11</version>
</dependency>

启动服务 ( 例子 )

public static void main(String[] args) throws IOException {

    Properties properties = new Properties();
    properties.load(new FileInputStream(args[0]));

    ReactorGuiceServer.create()
        .bind(host, port)
        .createInjector(
            binder -> Names.bindProperties(binder, properties),
            new Module()
        )
        .setHttpMessageConverter(new MyGsonHttpMessageConverter())
        // .setHttpMessageConverter(new MyJacksonHttpMessageConverter())
        .setTemplateDelegate(new FreemarkTemplateDelegate())
        // .setTemplateDelegate(new ThymeleafTemplateDelegate())
        .basePackages("com.doopp.reactor.guice.app")
        .addFilter("/", TestFilter.class)
        .printError(true)
        .crossOrigin(true)
        .launch();
}

API 网关模式

ReactorGuiceServer.create()
        .bind(host, port)
        .setApiGatewayDispatcher(new MyApiGatewayDispatcher())
        .addFilter("/", TestFilter.class)
        .launch();

Reactor-Guice 聚焦于以下功能

0.0.3 支持注解 @GET @POST @PUT @DELETE @Products @PATH
0.0.3 静态文件支持
0.0.3 支持 Websocket
0.0.4 自定义 uri filter
0.0.5 目录下默认输出 index.html
0.0.5 支持自定义 json lib,自带 Gson 和 Jackson
0.0.5 可以上传文件
0.0.6 POST 支持数组
0.0.7 支持自定义模板,自带 Freemark 和 Thymeleaf
0.0.7 通过 Mono.just("redirect:/example") 支持跳转
0.0.7 修复BUG,已经命名规范
0.0.8 API 网关模式,通过自定义的 Dispatcher 转发请求,可 Filter 过滤
      修复头信息重复的 BUG
      添加跨域头支持,和 OPTIONS 请求的返回
0.0.9 支持 byte[] 类型输出,便于输出 protobuf
      修复跳转的 BUG
      默认直接输出返回的 JSON,而不对结果做包装后再输出
0.10  @BeanParam 注解支持将 Form Data , Json 或 Protobuf Data 转换成本地对象
      上传文件支持 byte[] ,UploadFile 或 File 类型,File 类型可以指定上传文件保存的目录

0.11  自动扫描 @Controller 并将方法加入到路由,规范符合 Reactor-Netty
      自动扫描 @Service 并将其添加到 Guice 的依赖注入中,规范符合 Guice

未来扩展支持
  udp server
  考虑引入 Jersey
原文  https://www.oschina.net/news/107261/reactor-guice-0-11-released
正文到此结束
Loading...