当前位置: 首页 > 软件库 > 开发工具 > Java开发工具 >

Ximplementation

基于Java注解的调用时路由框架
授权协议 Apache-2.0
开发语言 Java
所属分类 开发工具、 Java开发工具
软件类型 开源软件
地区 国产
投 递 者 贺功
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

它包括两个核心注解:

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

    @Implement
    此注解标注于@Implementor类的方法,表明方法是实现方法,就像@Overriden注解。

示例

假设有一个接口类如下:

public interface Service
{
	T plus(T a, T b);
	T minus(T a, T b);
}

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

public class ServiceImplDefault implements Service
{
	public T plus(T a, T b){...}
	public T minus(T a, T b){...}
}

public class ServiceImplPlusInteger implements Service
{
	@Override
	public Integer plus(Integer a, Integer b){...}
	
	@NotImplement
	@Override
	public Integer minus(Integer a, Integer b){ throw new UnsupportedOperationException(); }
}

@Implementor(Service.class)
public class ServiceImplMinusInteger
{
	@Implement
	public Integer minus(Integer a, Integer b){...}
}

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

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

Implementation implementation = new ImplementationResolver().resolve(Service.class,
			 	ServiceImplDefault.class, ServiceImplPlusInteger.class, ServiceImplMinusInteger.class);

ImplementorBeanFactory implementorBeanFactory = SimpleImplementorBeanFactory
			.valueOf(new ServiceImplDefault(), new ServiceImplPlusInteger(), new ServiceImplMinusInteger());

Service service = new ProxyImplementeeBeanBuilder().build(implementation, implementorBeanFactory);

对于serivce.plus方法的调用,如果参数类型是Integer,将被路由至ServiceImplPlusInteger.plus方法,否则,将被路由至ServiceImplDefault.plus方法;对于serivce.minus方法的调用,如果参数类型是Integer,将被路由至ServiceImplMinusInteger.minus方法,否则,将被路由至ServiceImplDefault.minus方法。

扩展库

Ximplementation-spring是一个将ximplementation整合至Spring的库,使Spring能够支持多实例依赖注入和更多ximplementation特性。

点击此处查看详细ximplementation-spring介绍

点击此处下载ximplementation-spring

  • 软件简介 Ximplementation是一个基于Java注解的调用时路由框架。 它包括两个核心注解: @Implementor 此注解标注于类,表明类是某个或者某些类的实现类,就像implements和extends关键字。 @Implement 此注解标注于@Implementor类的方法,表明方法是实现方法,就像@Overriden注解。 示例 假设有一个接口类如下: public inte

 相关资料
  • 本文向大家介绍Laravel5.1 框架路由基础详解,包括了Laravel5.1 框架路由基础详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Laravel5.1 框架路由基础。分享给大家供大家参考,具体如下: 什么是路由? 大K简单的说下,路由是用户访问我们程序的一个入口,比方说 你在浏览器输入:www.myblogs.com/create 就会打开一个页面,我们接收到这一个请求后后

  • 注解路由 新版本提供了一种最简单的路由注册方法(可以完成基本的路由定义),默认关闭,如果需要开启在应用的app.php配置文件中设置: // 使用注解路由 'route_annotation' => true, 然后只需要直接在控制器类的方法注释中定义(通常称之为注解路由),例如: <?php namespace app\index\controller; class

  • 我有一个小难题来解决这个问题。 我有一个用户和一个管理员角色。 用户应该能够列出除管理员以外的所有用户。管理员可以列出所有用户。 我想到的第一个解决方案是检查控制器级别的角色: 但是我更想做的是在路线层面上,保持控制器更干净,但不知何故它确实起作用了。它只列出用户,即使我作为管理员登录。 有什么建议吗?谢谢!

  • 我的目标是开发一个单一的骆驼路线来映射这些服务器,接受路径中服务器的名称。类似于这样: 我的(简化且不起作用)Blueprint.xml: 问题是,我不知道如何从路径中移除/center、/north或/south,因此头部被传递给目标服务,而目标服务不知道如何处理它。调用:

  • 我正在尝试迁移两个Ruby on Rails应用程序,因为它们目前由原始开发人员托管,他们不允许我们访问以更改代码。这些应用程序是LocomotiveCMS_Engine和Spree站点。我让它们分别在端口3000和3333上运行得很好。 我想知道的是如何使它,当你转到页面,即localhost它会将你路由到端口3000,当你去localhost/store它会将你路由到端口3333。 我尝试使用

  • 我希望使用相同的路由路径,根据用户角色为我的用户加载稍微不同的视图。 以前,我已经加载了基于当前域的不同路由: 这种方法只依赖于子域,子域在创建时可用,因此所有内容都可以是同步的。我必须对用户进行身份验证,根据其角色加载正确的路由,然后导出路由器以初始化vue应用程序。 理想情况下,我可以加载基于用户角色的,,,其中可以包含角色的所有路由定义。 我正在使用Feathers-vuex,但我似乎不能等

  • 我可以检查对象中的值并基于此进行路由吗(就像写到不同的文件一样?)。我可以在pojo中添加注释以避免final json中的字段 我想到了将object转换为json,然后发送到Queue。然后我可以使用jsonpath进行条件路由。但是,我怎样才能从final JSON中省略一个字段呢?

  • 主要内容:运行项目让我们写一个Spring AOP基于注解的应用例子,它将使用基于注解的配置实现通知。打开并使用Eclipse IDE,并按照以下步骤创建一个Spring应用程序: 更新在Spring AOP应用实例中创建过的项目。 更新配置并运行应用程序,如下所述。 整个项目的目录结构如下所示 - 下面是文件的内容。 这实际上是一个模块的样本,它定义了在各个点被调用的方法。 以下是Student.java文件的内