NCC Rest接口开发

Rest接口

  • NCC项目中Rest接口符合restful规范,接口实现的调用与VO的参数传递都会涉及到代理与反射。

  • 开发过程:

    1. 寻找接口:ncc的结构是基于模块module,不同模块在系统的运行过程中,负责不同的功能,针对需要开发的功能的不同,所需要再开发的模块也不一样,所以开发的首要就是需要去找到需要开发的模块,与其中的接口。例如对基础信息模块中进行增删查改操作,就需要在ncchome\modules目录下找到uapbd文件夹,其中封装着基础信息模块中的jar包、配置文件等。在这里插入图片描述

      寻找接口:接口在模块中是以jar包的形式存在与模块文件夹下的lib目录下,可以根据数据字典中对应的名字去寻找,但这样的方法也只是具有参考性,需要的更多的是经验。就比如项目基础信息封装在pubuapbd_pmbase.jar中,单凭名字来说其实也没有什么参考意义…

      找到jar包后,需要去解压jar,然后根据其中的目录寻找相应的Service类,打开Service的java文件,其中也会有注释,根据注释信息去找到相应的接口类。

    2. 调用接口:NCC已经封装好了一套调用Rest接口的一套方法。需要将寻找到的接口的Class对象注入到其中,之后会自动寻找匹配到合适对应接口实现类并注入。在这里插入图片描述

      获得接口实现类对象后就需要根据参数,来创建VO类并对其传值:

      • 普通传值

        vo.setProject_name(jsonObject.getString("project_name"));
                    vo.setPk_group(jsonObject.getString("pk_group"));
                    vo.setPk_org(jsonObject.getString("pk_org"));
                    vo.setProject_code(jsonObject.getString("project_code"));
                    vo.setPk_eps(jsonObject.getString("pk_eps"));
                    vo.setPlan_start_date(new UFDate(jsonObject.getDate("plan_start_date")));
                    vo.setPlan_finish_date(new UFDate(jsonObject.getDate("plan_finish_date")));
                    vo.setEnablestate(jsonObject.getInteger("enablestate"));
        
      • Stream流式传值:

        Consumer<String> consumer = s -> {vo.setAttributeValue(s,jsonObject.get(s));};
                jsonObject.keySet().stream().forEach(consumer);
        

        流式传值的方式比起普通传值来说,就不需要书写太多的set方法,因为VO类的父类SuperVO中封装着setAttributeValue方法,它可以根据数据库中的对应字段名来对其进行属性注入,会方便许多。

        但无论哪种传值方式,在系统的对接中都需要对字段属性的对应进行修改匹配。

    3. 环境类加载:在NCC中开发Rest接口必须要根据规范继承Resource资源类,并重写其中的getModule方法,返回模块名字符串。

      @Path("service/restuapbd")
      public class TestRestResource extends AbstractUAPRestResource {
      
          @Override
          public String getModule() {
              return "uapbd";
          }
          @POST
          @Path("insert")
          @Produces("application/json")
          @Consumes("application/json")
      

      之后就可以自定义请求路径在其中编写请求方法。

    4. 资源类注册(rest配置文件):rest接口开发需要编写配置文件至META-INF文件夹中,文件以.rest为后缀,其中内容格式为xml格式,并需要在其中配置Resource资源类全类名。

      <?xml version="1.0" encoding='gb2312'?>
      
      <module>
       <rest>
        <resource classname="nc.cloud.rest.nc.cloud.rest.pub.TestRestResource"  exinfo=""/>
       </rest>
      </module>
      
  • 注意事项:在使用和调试Rest接口的过程中,会出现各类的问题,一般都需要打断点来去查看堆栈信息来找到报错原因,主要原因是AbstractUAPRestResource其子类在被实例化调用的时候都是通过代理进行反射来调用的,在某些节点可以清晰的看到堆栈中的CDLIB包下的对象。所以处理报错信息出了仔细看注解、引用类路径外,还需要打断点仔细跟踪。

插件开发

  • 插件开发指的是,在NCC系统操作后根据操作时序进行的二次操作,例如一个表数据的添加操作,就可以在添加前、添加后开发插件,实现操作的拓展。

在这里插入图片描述

找到事件源后就可以去新增插件。

  1. IBusinessListener:IBusinessListener是插件开发需要去实现的一个接口,其中主要采用的就是观察者模式,去监听事件源,事件源被触发后,就会去事件源id去寻找IBusinessListener的实现类,这些数据都存储在数据库一个表中。

  2. 接口实现

    public interface IBusinessListener {
        void doAction(IBusinessEvent var1) throws BusinessException;
    }
    
    

    实现该接口后需要重写doAction方法,当监听到事件源时,会将实现类注入并调用doAction方法,实现相应的操作。接口是否被调用可以通过打断点的方式来跟踪,使用System.out.print的方式并不会直接输出在控制台中。

模块注册

若是ncc中现有的模块不能满足用户的需求,需要重新开发新模块实现功能,就需要去注册并发布模块,其中比较重要的就是文件结构、module.xml配置文件。

  • 文件结构🗄:一个模块若是想要去参与到系统的运行,就需要有规范的文件目录结构被识别出来。模块文件必不可少的目录是META-INF,其中会存放各类配置文件,比如接口文件、module.xml,另外的文件夹中都存放了各类文件,lib下存放了编译的class文件或jar包。

  • module.xml:它是决定一个模块能否被正确执行的关键所在

    <?xml version="1.0" encoding="gb2312"?>
    <module name="module_name">
        <public>
        </public>
        <private>
        </private>
    </module>
    
    

    module标签中的name属性对应模块名。

    一个模块能否被正确注册可以在sysConfig.batpath=home\bin\sysConfig.bat部署配置中查看。

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: NCC2005单据开发是指基于NCC2005平台进行单据开发的一项工作。NCC2005是一款集成化的企业管理软件平台,具有灵活、稳定、功能强大的特点,广泛应用于各个行业的企业中。 单据开发是在NCC2005平台上根据企业的具体需求进行的开发工作。通过单据开发,企业可以根据自身的业务流程和需求,定制各种类型的单据,如采购单、销售单、库存单等,以满足企业的管理和运营需求。 在NCC2005平台上进行单据开发,需要具备一定的编程和开发技能。通过使用平台提供的开发工具和接口,可以对单据的表单和逻辑进行定制和开发。可以根据需求进行字段的添加和修改,设置校验规则和逻辑判断,实现自定义的业务流程。 NCC2005单据开发的好处是可以高度定制化,能够满足企业特定的业务需求。通过开发自定义单据,企业可以更好地管理和控制各个环节的业务流程,提高工作效率和管理水平。同时,单据开发也为企业提供了更多的数据分析和报表功能,帮助企业进行数据挖掘和决策支持。 总而言之,NCC2005单据开发是一项根据企业需求进行的定制化开发工作,可以帮助企业实现更高效的管理和运营,提升企业竞争力和市场影响力。 ### 回答2: NCC2005是一款用于开发单据的工具软件,其主要功能是帮助用户快速、高效地设计和生成各类单据。该软件具备强大的功能和灵活的操作,可以满足用户对单据开发的各种需求。 首先,NCC2005具有简单易用的界面,用户可以通过直观的操作完成单据的设计和设置。软件提供了丰富的设计模板和样式,用户可以根据自己的需求选择合适的模板,并对其进行自定义编辑。在设计单据的过程中,用户可以轻松添加各种必要的字段、标签和控件,以及设置数据的格式和验证规则。 其次,NCC2005支持多种数据源的连接和集成。用户可以通过软件与数据库、表格、文本文件等不同类型的数据源进行连接,并将数据源中的数据应用到单据中。这样一来,用户就能够实现数据的实时更新和动态展示,提高了单据的可靠性和准确性。 此外,NCC2005还具备强大的打印和导出功能。用户可以通过软件将设计好的单据直接打印出来,从而方便地应用于实际工作中。同时,软件还支持将单据导出为多种格式的文件,如PDF、Excel等,方便用户在不同的场景下使用和共享。 总的来说,NCC2005是一款功能强大、操作简便的单据开发工具软件。它能够帮助用户快速、高效地设计和生成各类单据,并支持多种数据源的连接和集成。无论是个人用户还是企业用户,都可以通过使用NCC2005来简化、优化单据开发的工作流程,提升工作效率和质量。 ### 回答3: NCC2005 单据开发是指在 NCC2005 平台上进行单据设计和开发的过程。NCC2005 是一款领先的企业管理软件平台,它提供了强大的功能和灵活的扩展性,可以满足企业在不同领域中的单据管理需求。 在进行 NCC2005 单据开发时,首先需要根据实际业务需求进行单据设计。单据设计包括确定单据类型、字段定义、单据流程、验证规则等内容。通过清晰的单据设计,可以确保单据与业务流程相匹配,并且能够准确获取所需的信息。 接下来是进行单据开发NCC2005 单据开发采用的是面向对象的开发模式,开发人员可以利用 NCC2005 平台提供的开发工具和API,按照单据设计进行相关代码的编写和调试。可以根据实际需要添加业务逻辑,实现数据的计算、验证和处理等功能。 除了基本的单据设计和开发NCC2005 还提供了许多扩展功能,可以根据具体需求进行定制开发。例如,可以进行界面定制来满足用户的审美需求,也可以进行报表定制以满足用户对数据分析和报表展示的需求。 NCC2005 单据开发的好处在于它能够提高工作效率和准确性。通过合理的单据设计和开发,可以简化企业的业务流程,并优化数据的管理和处理过程。此外,NCC2005 还支持多语言、多币种等功能,可以满足不同国家和地区的业务需求。 总之,NCC2005 单据开发是一项重要的工作,它能够帮助企业实现单据管理的自动化和规范化,提高工作效率和准确性,从而更好地支持企业的业务发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值