jimmy9495 发表于 2013-1-29 22:30:51

父类bean无法注入问题

package com.alifi.hades.biz.access.rule.ctu;import java.util.Map;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import com.alifi.hades.biz.access.rule.AccessRule;import com.alifi.hades.biz.crm.manager.CrmMemberManager;import com.alifi.hades.common.model.CustListDO;import com.alifi.hades.dal.dao.CustListDao;import com.alifi.hyperion.common.model.Member;/** * 黑名单准入规则 * */public abstract class AbstractCTUAccessRule implements AccessRule {    private static final Log logger = LogFactory.getLog(AbstractCTUAccessRule.class);    protected static final String KEY_MEMBER = "member";      private CrmMemberManager crmMemberManager;    private CustListDao       custListDao;    public boolean checkAccess(String prodId, Map<String, Object> context) {      if (context.containsKey(KEY_MEMBER)) {            Member member = (Member) context.get(KEY_MEMBER);            String site = crmMemberManager.getSiteBySource(member.getSource());            String siteMemId = member.getUserId();            String ruleCode = getAccessRuleCode();            // 白名单            CustListDO whiteList = custListDao.getWhiteListByRuleCode(site, siteMemId, ruleCode);            if (whiteList != null) {                logger.info("该规则的白名单用户,跳过此规则校验。ruleCode:" + ruleCode + "    siteMemId:" + siteMemId);                return true;            }            return doCheckAccess(prodId, member);      }      return false;    }    protected abstract boolean doCheckAccess(String prodId, Member member);    public void setCustListDao(CustListDao custListDao) {      this.custListDao = custListDao;    }    public void setCrmMemberManager(CrmMemberManager crmMemberManager) {      this.crmMemberManager = crmMemberManager;    }}/* * Project: Hades ** File Created at 2011-03-15 * $Id$ ** Copyright 2011 B2B Technology, Alibaba.com Corporation Limited. * All rights reserved. * * This software is the confidential and proprietary information of * Alibaba Company. ("Confidential Information").You shall not * disclose such Confidential Information and shall use it only in * accordance with the terms of the license agreement you entered into * with Alibaba.com. */package com.alifi.hades.biz.access.rule.ctu;import static com.alifi.hades.biz.common.util.TemplatedLog.log;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import com.alifi.ctu.service.BlackListService;import com.alifi.hades.biz.common.dictionary.MsgTemplateDictionary.DataError;import com.alifi.hades.biz.common.dictionary.MsgTemplateDictionary.RpcCallError;import com.alifi.hades.biz.common.exception.LoanLogMsg;import com.alifi.hades.biz.crm.manager.CrmMemberManager;import com.alifi.hyperion.common.model.Member;/** * 黑名单不准入 * */public class BlackListAccessRule extends AbstractCTUAccessRule {    private static final Log logger = LogFactory.getLog(BlackListAccessRule.class);      private CrmMemberManager crmMemberManager;      private BlackListService blackListService;      @Override    /**   * 黑名单不准入   */    protected boolean doCheckAccess(String prodId, Member member) {      String site = crmMemberManager.getSiteBySource(member.getSource());      String siteMemId = member.getUserId();      try {            if(blackListService.checkBlackListBySiteMemeber(site, siteMemId, prodId, "1")){                logger.debug(log(DataError.UNEXPECTED, "黑名单用户不准入。siteMemId:" + siteMemId));                return false;            }else{                return true;            }      } catch (Exception e) {            logger.error(log(RpcCallError.MSG_00001, LoanLogMsg.BLACKLIST_EXCEPTION), e);            return false;      }    }      public String getAccessRuleCode() {      return "2000";    }      public void setCrmMemberManager(CrmMemberManager crmMemberManager) {      this.crmMemberManager = crmMemberManager;      super.setCrmMemberManager(crmMemberManager);//处理父类无法注入问题    }    public void setBlackListService(BlackListService blackListService) {      this.blackListService = blackListService;    }}
页: [1]
查看完整版本: 父类bean无法注入问题