下方是一个示例的upm文件内容
<?xml version="1.0" encoding='gb2312'?>
<module name="cmp_applyclose">
<public>
<component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
<interface>nc.itf.cmp.apply.IApplyCloseBalance</interface>
<implementation>nc.impl.cmp.apply.ApplyCloseBalanceImpl</implementation>
</component>
</public>
<private>
</private>
</module>
本文主要对component组件属性进行说明
属性名称 | 属性作用 |
---|---|
name | 组件的名称,如果没配,默认为第一个接口的名称,如果没有接口,为实现类的名称 |
singleton | 组件级别是否为单例,默认为true |
remote | 组件是否未远程组件,默认为false,远程组件必须要有接口 |
tx | 事务属性, NONE表示没有事务,CMT表示容器管理的事务,BMT表示Bean管理的事务 |
cluster | 标志组件的集群属性,默认为NORMAL,表示不是集群组件,SP表示为运行于主节点,其它表示与某个服务运行在同一个节点 |
supportAlias | 默认为false,表示是否能够按照接口进行查找组件 |
priority | 组件的属性,按照JavaBean的规范进行 |
accessProtected | 接口在系统中是否受保护,即是否校验token |
说明:
系统底层有许多不受校验的接口,所以如果在底层加入了受保护的接口,不受保护的接口都会受到影响。最好不改底层代码,如果需要改底层代码,请设置accessProtected=“false”,将此接口也设置为不受保护的接口
public下的组件为公共组件,可以被NCLocator查找到,支持所有component组件属性
private下的组件为私有组件,私有组件只能被当前组件所部署的模块通过ComponentContext查找到,私有组件没有remote、tx属性,其余component组件属性都支持
singleton设置为true的时候有并发风险,使用成员变量时,要考虑同步
二开接口一般设置是否远程,是否单例,事务模式这三个属性,其它属性按需设置