flying中的AOP和IOC

Posted hifong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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实现了。

以上是关于flying中的AOP和IOC的主要内容,如果未能解决你的问题,请参考以下文章

理解Spring中的IOC和AOP

ioc和aop的区别?

如何理解Spring中的IOC和AOP

说明反转控制(IOC)和面向方向编程(AOP)在spring中的应用

谈谈Spring中的IOC和AOP概念

spring中的ioc和aop概念