#-*- coding: UTF-8 -*- #------------------------------------------------------------------------------- # Name: ģ��1 # Purpose: # # Author: Administrator # # Created: 07-11-2012 # Copyright: (c) Administrator 2012 # Licence: <your licence> #------------------------------------------------------------------------------- from springpython.context import ApplicationContext from springpython.config import PythonConfig from springpython.aop import * import time class PerformanceInterceptor(MethodInterceptor): def invoke(self, invocation): start = time.time() results = invocation.proceed() stop = time.time() print "Method took %2f seconds" % (stop - start) return results class WikiService: def AddWhileInt(self, a, b): result = a+b total = 10000000 while(total): total-=1 result+=1 return result def AddWhileTrue(self, a, b): result = a+b total = 10000000 while(total>0): total-=1 result+=1 return result class IocPythonContainer(PythonConfig): def __init__(self): super(IocPythonContainer, self).__init__() def PerformanceAdvisor(self): return RegexpMethodPointcutAdvisor( advice = [PerformanceInterceptor()], patterns = [".*.*"] ) def WikiService(self): return ProxyFactoryObject( target = WikiService(), interceptors =[self.PerformanceAdvisor()] ) def main(): container = IocPythonContainer() service = container.WikiService() result = service.AddWhileInt(100, 20) print result result = service.AddWhileTrue(100, 20) print result if __name__ == '__main__': main()