版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012045045/article/details/84778157
我们提供一个统一的接口,根据一个参数字段来判断真正执行的是哪个类。上代码。
接口规范:
package com.cmbc.smp.orgBatchManageApi.adapter;
public interface IAdapter<R,P> {
//查询方法
public R search(P params);
}
之前的接口封装map:
package com.cmbc.smp.orgBatchManageApi.adapter;
import java.util.Map;
@SuppressWarnings("rawtypes")
public class AdapterMap {
private Map<String, IAdapter> adapterImplMap;
public Map<String, IAdapter> getAdapterImplMap() {
return adapterImplMap;
}
public void setAdapterImplMap(Map<String, IAdapter> adapterImplMap) {
this.adapterImplMap = adapterImplMap;
}
public IAdapter getAdapterImpl(String bizType) {
return adapterImplMap.get(bizType);
}
}
controller:
package com.cmbc.smp.orgBatchManageApi.adapter;
import javax.annotation.Resource;
import com.cmbc.smp.model.request.api.PublicRequest;
import com.tesla.framework.core.Context;
import com.tesla.framework.function.Action;
public class SeachOrgByIdsController implements Action {
@Resource(name = "adapterMaps")
private AdapterMap adapterMap ;
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public void execute(Context context) {
//请求参数
PublicRequest req =new PublicRequest(context);
if(!req.check()){
return;
}
//实现类
IAdapter adapterImpl =adapterMap.getAdapterImpl(req.getBizType());
//查询
adapterImpl.search(context);
return;
}
}
配置文件:
<!-- 适配器实现类 初始化bean -->
<bean id="batch_select_sub_bra_by_ids" class="com.cmbc.smp.orgBatchManageApi.adapter.BatchSubBraSearchByIdsAdapterImpl"></bean>
<bean id="batch_select_emp_by_ids" class="com.cmbc.smp.orgBatchManageApi.adapter.BatchEmpSearchByIdsAdapterImpl"></bean>
<bean id="batch_select_manager_by_ids" class="com.cmbc.smp.orgBatchManageApi.adapter.BatchManagerSearchByIdsAdapterImpl"></bean>
<bean id="batch_get_sub_bra_for_import" class="com.cmbc.smp.orgBatchManageApi.adapter.BatchSubBraSearchByCodesAdapterImpl"></bean>
<bean id="bra_off_rec_sub_bra_by_name" class="com.cmbc.smp.orgBatchManageApi.adapter.BatchSubBraSearchByNameAdapterImpl"></bean>
<bean id="adapterMaps" class="com.cmbc.smp.orgBatchManageApi.adapter.AdapterMap">
<property name="adapterImplMap">
<map key-type="java.lang.String">
<entry key="bra_off_rec_sub_bra" value-ref="batch_select_sub_bra_by_ids" />
<entry key="bra_off_rec_emp" value-ref="batch_select_emp_by_ids" />
<entry key="bra_off_rec_manager" value-ref="batch_select_manager_by_ids" />
<!-- 根据支行代码批量查找支行id -->
<entry key="batch_get_sub_bra_for_import" value-ref="batch_get_sub_bra_for_import" />
<entry key="bra_off_rec_sub_bra_by_name" value-ref="bra_off_rec_sub_bra_by_name" />
</map>
</property>
</bean>