zoukankan      html  css  js  c++  java
  • 多个实现类 实现一个接口

    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 "";
        }
  • 相关阅读:
    xp系统优化
    项目开发文档格式13种 (转载)
    java 操作 ORACLE
    orclae temp table
    把EXCEL上传并BINDING到GRIDVIEW中
    从excel读数据写入数据库代码
    GMDatePicker控件的使用
    代码汇总
    dwr运行时出现Servlet.init() for servlet dwrinvoker threw exception的解决方法
    CVSNT安装
  • 原文地址:https://www.cnblogs.com/cuijinlong/p/15175968.html
Copyright © 2011-2022 走看看