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实现了。

  • 相关阅读:
    107. Binary Tree Level Order Traversal II
    108. Convert Sorted Array to Binary Search Tree
    111. Minimum Depth of Binary Tree
    49. Group Anagrams
    使用MALTAB标定实践记录
    442. Find All Duplicates in an Array
    522. Longest Uncommon Subsequence II
    354. Russian Doll Envelopes
    opencv 小任务3 灰度直方图
    opencv 小任务2 灰度
  • 原文地址:https://www.cnblogs.com/hifong/p/5831796.html
Copyright © 2011-2022 走看看