多个实现类 实现一个接口

package com.infosec.resource.service.impl;

import java.util.ArrayList;
import java.util.List;

import com.infosec.sms.bean.PropertiesBean;

public class ResSynchUserBusinessPermissToSys implements IResouceImplClassBaseInterface {

	@Override
	public List<PropertiesBean> getProperties() {
		List<PropertiesBean> properties = new ArrayList<PropertiesBean>();
		properties.add(new PropertiesBean("datebaseName", "数据库名称", "mysql","isNull", true));
		properties.add(new PropertiesBean("datebaseUser", "用户名", "user", "isNull", true));
		properties.add(new PropertiesBean("datebasePassword", "密码", "123456", "isNull", true));
		return properties;
	}

	@Override
	public int asignUser2Roles(String userid, String[] roleids) {
		// TODO Auto-generated method stub
		return 0;
	}

}

  

package com.infosec.resource.service;

import java.util.List;

import com.infosec.sms.bean.PropertiesBean;

/**
 * 
 * <p> 
 *  业务权限数据同步实现类父类
 * </p>
 *
 * <p>
 *    版权所有:北京信安世纪科技股份有限公司(c) 2020
 * </p>
 *
 * @author: jlcui 
 * @date:   2021年8月23日下午2:12:41
 *
 */
public interface IResouceImplClassBaseInterface {

    /**
     * 获取所有需要配置的属性.
     * 
     * @return
     */
    public List<PropertiesBean> getProperties();
    
    /**
     * 
     * 用户业务权限同步到业务系统
     * @param userid
     * @param roleids
     * @return
     * @return int
     * @author jlcui
     * @date   2021年8月23日下午2:25:00
     */
    public int asignUser2Roles(String userid,String[] roleids);
    
}
    /**
     * 
     * 加载用户的权限信息推送到业务系统实现类
     * 
     * @param impleClassName
     * @param request
     * @return
     * @return JsonResult
     * @author jlcui
     * @date 2021年8月23日下午2:42:03
     */
    @GetMapping("/get/engine/loadtoresourceclass")
    public JsonResult load(
            @Length(min = 1, max = 100, message = ValidatedMsgConst.LENGTH_LIMIT_HUNDRED_MSG) @ApiParam(value = "实现类,"
                    + ValidatedApiParamConst.LENGTH_LIMIT_HUNDRED_MSG, required = true) @RequestParam("impleClassName") String impleClassName,
            HttpServletRequest request) {
        JsonResult jsonResult = JsonResultUtils.getFailObj();

        // 进行输入检测.
        String error = this.saveValid(impleClassName);
        if (error != null && !"".equals(error)) {
            jsonResult.setMsg(error);
            return jsonResult;
        }
        try {
            IResouceImplClassBaseInterface api = (IResouceImplClassBaseInterface) Class.forName(impleClassName)
                    .newInstance();
            jsonResult.setResult(api.getProperties());
            jsonResult.setCode(JsonErrotCode.SUCCESS_CODE);
            return jsonResult;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return jsonResult;
    }

    //校验实现类是否存在
    private String saveValid(String implClass) {
        // 加载类.
        Object object = null;
        String info = "";
        try {
            object = Class.forName(implClass).newInstance();
        } catch (InstantiationException e) {
            e.printStackTrace();
            info = localeMessageSourceService.getMessage(ResourceInterKeyConst.SYNCONFIGIMPLCLASSINITIALIZATIONFAILED);
        } catch (IllegalAccessException e) {
            e.printStackTrace();
            info = localeMessageSourceService.getMessage(ResourceInterKeyConst.SYNCONFIGIMPLCLASSNOTACCESSIBLE);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            info = localeMessageSourceService.getMessage(ResourceInterKeyConst.SYNCONFIGIMPLCLASSNOWASFOUND);
        } catch (Exception e) {
            e.printStackTrace();
            info = localeMessageSourceService.getMessage(ResourceInterKeyConst.EXTAUTH_INSTANT_LOAD_FAIL);
        }

        if (!"".equals(info)) {
            return info;
        }

        if (!(object instanceof IResouceImplClassBaseInterface)) {
            info = ResourceInterKeyConst.SYNCONFIGFAILEDTOLOADNEED;
            return info;
        }
        return "";
    }