zoukankan      html  css  js  c++  java
  • flying中的AOP和IOC

    注入属性:
    private synchronized void injectReferenceServices() {
     if(this.injectReferenceServicesInitialized) return;
     PropertyDescriptor[] pds = PropertyUtils.getPropertyDescriptors(this.serviceClass);
     if(pds == null) return;
     for(PropertyDescriptor pd: pds) {
      Class<?> type = pd.getPropertyType();
      if(type == null) continue;
      if(type.getName().startsWith("java") || type.getName().startsWith("org"))  continue;
      if(module.getModuleConfig().getServiceConfigs().containsKey(type.getName())) {
       try {
        pd.getWriteMethod().invoke(this.serviceObject, new Object[]{module.getService(type)});
        logger.debug(this.serviceClass.getName()+" injectReferenceService ‘"+pd.getName()+"’success!");
       } catch (Exception e) {
        logger.error(this.serviceClass.getName()+" injectReferenceService ‘"+pd.getName()+"’失败,可能导致部分功能无法正常使用!", e);
       }
      }
     }
     this.injectReferenceServicesInitialized = true;
    }

    服务调用拦截:
    public Object intercept(Object service, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {
      。。。。。。。。。。。
       //
       if(!injectReferenceServicesInitialized) {
        this.injectReferenceServices();
       }
                        。。。。。。。
    }
    如似乎,一个不太完美的IOC实现了。

  • 相关阅读:
    mass Framework draggable插件
    将一段数字从右到左每隔三位插入一个逗号
    Firefox 12正式发布
    各大瀑布流简析与建议
    判定是否为非负整数
    mass Framework droppable插件
    HTML 5 <video> 标签
    SQL DELETE 语句
    SQL CREATE TABLE 语句(转)
    HTML <fieldset> 标签
  • 原文地址:https://www.cnblogs.com/hifong/p/5831796.html
Copyright © 2011-2022 走看看