Ximplementation 基于Java注解的调用时路由框架开源项目

我要开发同款
匿名用户2017年09月07日
102阅读

技术信息

开源地址
https://github.com/ximplementation/ximplementation
授权协议
Apache-2.0

作品详情

Ximplemetatio是一个基于Java注解的调用时路由框架。

它包括两个核心注解:

   @Implemetor   此注解标注于类,表明类是某个或者某些类的实现类,就像implemets和exteds关键字。

   @Implemet   此注解标注于@Implemetor类的方法,表明方法是实现方法,就像@Override注解。

示例

假设有一个接口类如下:

public iterface Service{T plus(T a, T b);T mius(T a, T b);}

那么,你可以自由地编写它的实现类:

public class ServiceImplDefault implemets Service{public T plus(T a, T b){...}public T mius(T a, T b){...}}public class ServiceImplPlusIteger implemets Service{@Overridepublic Iteger plus(Iteger a, Iteger b){...}@NotImplemet@Overridepublic Iteger mius(Iteger a, Iteger b){ throw ew UsupportedOperatioExceptio(); }}@Implemetor(Service.class)public class ServiceImplMiusIteger{@Implemetpublic Iteger mius(Iteger a, Iteger b){...}}

注:ServiceImplMiusIteger并不是必须的。而且,你可以在同一个或者多个其他@Implemetor实现类内为plus和/或mius编写多个实现方法。

之后,你可以通过如下方式获得Service的实例:

Implemetatio implemetatio = ew ImplemetatioResolver().resolve(Service.class, ServiceImplDefault.class, ServiceImplPlusIteger.class, ServiceImplMiusIteger.class);ImplemetorBeaFactory implemetorBeaFactory = SimpleImplemetorBeaFactory.valueOf(ew ServiceImplDefault(), ew ServiceImplPlusIteger(), ew ServiceImplMiusIteger());Service service = ew ProxyImplemeteeBeaBuilder().build(implemetatio, implemetorBeaFactory);

对于serivce.plus方法的调用,如果参数类型是Iteger,将被路由至ServiceImplPlusIteger.plus方法,否则,将被路由至ServiceImplDefault.plus方法;对于serivce.mius方法的调用,如果参数类型是Iteger,将被路由至ServiceImplMiusIteger.mius方法,否则,将被路由至ServiceImplDefault.mius方法。

扩展库

Ximplemetatio-sprig是一个将ximplemetatio整合至Sprig的库,使Sprig能够支持多实例依赖注入和更多ximplemetatio特性。

点击此处查看详细ximplemetatio-sprig介绍。

点击此处下载ximplemetatio-sprig。

功能介绍

Ximplementation是一个基于Java注解的调用时路由框架。 它包括两个核心注解: @Implementor 此注解标注于类,表明类是某个或者某些类的实现类,就像implements和...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论