From 8bf3714ef7a4b1a06d28b06b0775874dba50bc41 Mon Sep 17 00:00:00 2001 From: yusijia <694915223@qq.com> Date: Thu, 16 Mar 2017 00:06:39 +0800 Subject: [PATCH 1/3] =?UTF-8?q?tiny-spring=E8=AF=A6=E7=BB=86=E5=88=86?= =?UTF-8?q?=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加: - aopalliance的部分java文件和UML类图用于参考 - 参考项目里提供的两个分析文档的思路,在源码上加了更详细的分析 - 分析时画的UML类图和部分时序图 --- .../com/ysj/tinySpring/BeanReference.java | 34 +++++ .../ysj/tinySpring/aop/AbstractAopProxy.java | 16 ++ .../ysj/tinySpring/aop/AdvisedSupport.java | 48 ++++++ .../java/com/ysj/tinySpring/aop/Advisor.java | 18 +++ .../java/com/ysj/tinySpring/aop/AopProxy.java | 16 ++ .../tinySpring/aop/AspectJAroundAdvice.java | 52 +++++++ .../AspectJAwareAdvisorAutoProxyCreator.java | 70 +++++++++ .../aop/AspectJExpressionPointcut.java | 91 +++++++++++ .../aop/AspectJExpressionPointcutAdvisor.java | 42 +++++ .../ysj/tinySpring/aop/BeanFactoryAware.java | 17 +++ .../ysj/tinySpring/aop/Cglib2AopProxy.java | 94 ++++++++++++ .../com/ysj/tinySpring/aop/ClassFilter.java | 16 ++ .../tinySpring/aop/JdkDynamicAopProxy.java | 48 ++++++ .../com/ysj/tinySpring/aop/MethodMatcher.java | 19 +++ .../java/com/ysj/tinySpring/aop/Pointcut.java | 25 +++ .../ysj/tinySpring/aop/PointcutAdvisor.java | 16 ++ .../com/ysj/tinySpring/aop/ProxyFactory.java | 17 +++ .../aop/ReflectiveMethodInvocation.java | 63 ++++++++ .../com/ysj/tinySpring/aop/TargetSource.java | 35 +++++ .../beans/AbstractBeanDefinitionReader.java | 38 +++++ .../ysj/tinySpring/beans/BeanDefinition.java | 71 +++++++++ .../beans/BeanDefinitionReader.java | 17 +++ .../tinySpring/beans/BeanPostProcessor.java | 15 ++ .../ysj/tinySpring/beans/PropertyValue.java | 30 ++++ .../ysj/tinySpring/beans/PropertyValues.java | 25 +++ .../beans/factory/AbstractBeanFactory.java | 143 ++++++++++++++++++ .../factory/AutowireCapableBeanFactory.java | 61 ++++++++ .../tinySpring/beans/factory/BeanFactory.java | 20 +++ .../com/ysj/tinySpring/beans/io/Resource.java | 21 +++ .../tinySpring/beans/io/ResourceLoader.java | 26 ++++ .../ysj/tinySpring/beans/io/UrlResource.java | 33 ++++ .../beans/xml/XmlBeanDefinitionReader.java | 128 ++++++++++++++++ .../context/AbstractApplicationContext.java | 68 +++++++++ .../context/ApplicationContext.java | 16 ++ .../ClassPathXmlApplicationContext.java | 53 +++++++ src+/test/java/com/ysj/BeanFactoryTest.java | 54 +++++++ .../java/com/ysj/BeanInitializeLogger.java | 21 +++ src+/test/java/com/ysj/HelloWorldService.java | 9 ++ .../java/com/ysj/HelloWorldServiceImpl.java | 25 +++ src+/test/java/com/ysj/OutputService.java | 8 + src+/test/java/com/ysj/OutputServiceImpl.java | 13 ++ .../aop/AspectJExpressionPointcutTest.java | 33 ++++ .../java/com/ysj/aop/Cglib2AopProxyTest.java | 45 ++++++ .../com/ysj/aop/JdkDynamicAopProxyTest.java | 46 ++++++ .../java/com/ysj/aop/TimerInterceptor.java | 21 +++ .../com/ysj/beans/io/ResourceLoaderTest.java | 24 +++ .../xml/XmlBeanDefinitionReaderTest.java | 24 +++ .../ysj/context/ApplicationContextTest.java | 32 ++++ .../resources/tinyioc-postbeanprocessor.xml | 22 +++ src+/test/resources/tinyioc.xml | 32 ++++ ...0\346\200\201\344\273\243\347\220\206.png" | Bin 0 -> 93868 bytes ...1\347\233\270\345\205\263\347\261\273.png" | Bin 0 -> 58708 bytes ...0\346\200\201\344\273\243\347\220\206.png" | Bin 0 -> 59723 bytes ...0\346\200\201\344\273\243\347\220\206.png" | Bin 0 -> 55492 bytes ...0\345\205\263\346\216\245\345\217\243.png" | Bin 0 -> 41278 bytes ...1\347\233\270\345\205\263\347\261\273.png" | Bin 0 -> 17544 bytes ...4\347\233\270\345\205\263\347\261\273.png" | Bin 0 -> 25501 bytes ...0\350\275\275\350\277\207\347\250\213.png" | Bin 0 -> 85457 bytes ...1\347\233\270\345\205\263\347\261\273.png" | Bin 0 -> 26166 bytes ...3\345\222\214\345\205\263\347\263\273.png" | Bin 0 -> 121323 bytes .../Advice.java" | 11 ++ .../Interceptor.java" | 51 +++++++ .../Invocation.java" | 21 +++ .../Joinpoint.java" | 53 +++++++ .../MethodInterceptor.java" | 39 +++++ .../MethodInvocation.java" | 26 ++++ ...0\345\205\263\347\261\273\345\233\276.png" | Bin 0 -> 23170 bytes 67 files changed, 2112 insertions(+) create mode 100644 src+/main/java/com/ysj/tinySpring/BeanReference.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/AbstractAopProxy.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/AdvisedSupport.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/Advisor.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/AopProxy.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/AspectJAroundAdvice.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/AspectJAwareAdvisorAutoProxyCreator.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/AspectJExpressionPointcut.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/AspectJExpressionPointcutAdvisor.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/BeanFactoryAware.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/Cglib2AopProxy.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/ClassFilter.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/JdkDynamicAopProxy.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/MethodMatcher.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/Pointcut.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/PointcutAdvisor.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/ProxyFactory.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/ReflectiveMethodInvocation.java create mode 100644 src+/main/java/com/ysj/tinySpring/aop/TargetSource.java create mode 100644 src+/main/java/com/ysj/tinySpring/beans/AbstractBeanDefinitionReader.java create mode 100644 src+/main/java/com/ysj/tinySpring/beans/BeanDefinition.java create mode 100644 src+/main/java/com/ysj/tinySpring/beans/BeanDefinitionReader.java create mode 100644 src+/main/java/com/ysj/tinySpring/beans/BeanPostProcessor.java create mode 100644 src+/main/java/com/ysj/tinySpring/beans/PropertyValue.java create mode 100644 src+/main/java/com/ysj/tinySpring/beans/PropertyValues.java create mode 100644 src+/main/java/com/ysj/tinySpring/beans/factory/AbstractBeanFactory.java create mode 100644 src+/main/java/com/ysj/tinySpring/beans/factory/AutowireCapableBeanFactory.java create mode 100644 src+/main/java/com/ysj/tinySpring/beans/factory/BeanFactory.java create mode 100644 src+/main/java/com/ysj/tinySpring/beans/io/Resource.java create mode 100644 src+/main/java/com/ysj/tinySpring/beans/io/ResourceLoader.java create mode 100644 src+/main/java/com/ysj/tinySpring/beans/io/UrlResource.java create mode 100644 src+/main/java/com/ysj/tinySpring/beans/xml/XmlBeanDefinitionReader.java create mode 100644 src+/main/java/com/ysj/tinySpring/context/AbstractApplicationContext.java create mode 100644 src+/main/java/com/ysj/tinySpring/context/ApplicationContext.java create mode 100644 src+/main/java/com/ysj/tinySpring/context/ClassPathXmlApplicationContext.java create mode 100644 src+/test/java/com/ysj/BeanFactoryTest.java create mode 100644 src+/test/java/com/ysj/BeanInitializeLogger.java create mode 100644 src+/test/java/com/ysj/HelloWorldService.java create mode 100644 src+/test/java/com/ysj/HelloWorldServiceImpl.java create mode 100644 src+/test/java/com/ysj/OutputService.java create mode 100644 src+/test/java/com/ysj/OutputServiceImpl.java create mode 100644 src+/test/java/com/ysj/aop/AspectJExpressionPointcutTest.java create mode 100644 src+/test/java/com/ysj/aop/Cglib2AopProxyTest.java create mode 100644 src+/test/java/com/ysj/aop/JdkDynamicAopProxyTest.java create mode 100644 src+/test/java/com/ysj/aop/TimerInterceptor.java create mode 100644 src+/test/java/com/ysj/beans/io/ResourceLoaderTest.java create mode 100644 src+/test/java/com/ysj/beans/xml/XmlBeanDefinitionReaderTest.java create mode 100644 src+/test/java/com/ysj/context/ApplicationContextTest.java create mode 100644 src+/test/resources/tinyioc-postbeanprocessor.xml create mode 100644 src+/test/resources/tinyioc.xml create mode 100644 "src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\344\270\244\347\247\215\345\212\250\346\200\201\344\273\243\347\220\206.png" create mode 100644 "src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\344\273\216xml\344\270\255\345\212\240\350\275\275bean\345\256\232\344\271\211\347\232\204\344\270\273\350\246\201\347\233\270\345\205\263\347\261\273.png" create mode 100644 "src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\344\275\277\347\224\250cglib\345\212\250\346\200\201\344\273\243\347\220\206.png" create mode 100644 "src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\344\275\277\347\224\250jdk\345\212\250\346\200\201\344\273\243\347\220\206.png" create mode 100644 "src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\345\210\207\347\202\271\351\200\232\347\237\245\345\231\250\347\233\270\345\205\263\346\216\245\345\217\243.png" create mode 100644 "src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\345\212\240\350\275\275\350\265\204\346\272\220\347\232\204\344\270\273\350\246\201\347\233\270\345\205\263\347\261\273.png" create mode 100644 "src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\345\256\236\347\216\260ApplicationContext\346\216\245\345\217\243\347\232\204\347\233\270\345\205\263\347\261\273.png" create mode 100644 "src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\346\227\266\345\272\217\345\233\276-\346\231\256\351\200\232bean\347\232\204\345\212\240\350\275\275\350\277\207\347\250\213.png" create mode 100644 "src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\350\243\205\351\205\215bean\347\232\204\344\270\273\350\246\201\347\233\270\345\205\263\347\261\273.png" create mode 100644 "src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\351\200\232\350\277\207AspectJ\350\241\250\350\276\276\345\274\217\345\244\204\347\220\206AOP\347\232\204\344\270\273\350\246\201\347\261\273\345\222\214\345\205\263\347\263\273.png" create mode 100644 "src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/Advice.java" create mode 100644 "src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/Interceptor.java" create mode 100644 "src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/Invocation.java" create mode 100644 "src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/Joinpoint.java" create mode 100644 "src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/MethodInterceptor.java" create mode 100644 "src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/MethodInvocation.java" create mode 100644 "src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/\347\233\270\345\205\263\347\261\273\345\233\276.png" diff --git a/src+/main/java/com/ysj/tinySpring/BeanReference.java b/src+/main/java/com/ysj/tinySpring/BeanReference.java new file mode 100644 index 0000000..5206d7a --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/BeanReference.java @@ -0,0 +1,34 @@ +package com.ysj.tinySpring; + +/** + * 用于代表property标签的ref属性里的对象 + * + */ +public class BeanReference { + + public String name; + + public Object bean; + + public BeanReference(String name){ + this.name = name; + } + + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Object getBean() { + return bean; + } + + public void setBean(Object bean) { + this.bean = bean; + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/AbstractAopProxy.java b/src+/main/java/com/ysj/tinySpring/aop/AbstractAopProxy.java new file mode 100644 index 0000000..8076f2e --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/AbstractAopProxy.java @@ -0,0 +1,16 @@ +package com.ysj.tinySpring.aop; + +/** + * 继承了AopProxy接口,有获取代理对象的能力 + * 同时继承此接口有AdvisedSupport的支持 + * + */ +public abstract class AbstractAopProxy implements AopProxy{ + + protected AdvisedSupport advised; + + public AbstractAopProxy(AdvisedSupport advised) { + this.advised = advised; + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/AdvisedSupport.java b/src+/main/java/com/ysj/tinySpring/aop/AdvisedSupport.java new file mode 100644 index 0000000..20d2722 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/AdvisedSupport.java @@ -0,0 +1,48 @@ +package com.ysj.tinySpring.aop; + +import org.aopalliance.intercept.MethodInterceptor; + +/** + * AdvisedSupport封装了TargetSource, MethodInterceptor和MethodMatcher + * + */ +public class AdvisedSupport { + + // 要拦截的对象 + private TargetSource targetSource; + + /** + * 方法拦截器 + * Spring的AOP只支持方法级别的调用,所以其实在AopProxy里,我们只需要将MethodInterceptor放入对象的方法调用 + */ + private MethodInterceptor methodInterceptor; + + // 方法匹配器,判断是否是需要拦截的方法 + private MethodMatcher methodMatcher; + + + + public TargetSource getTargetSource() { + return targetSource; + } + + public void setTargetSource(TargetSource targetSource) { + this.targetSource = targetSource; + } + + public MethodInterceptor getMethodInterceptor() { + return methodInterceptor; + } + + public void setMethodInterceptor(MethodInterceptor methodInterceptor) { + this.methodInterceptor = methodInterceptor; + } + + public MethodMatcher getMethodMatcher() { + return methodMatcher; + } + + public void setMethodMatcher(MethodMatcher methodMatcher) { + this.methodMatcher = methodMatcher; + } +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/Advisor.java b/src+/main/java/com/ysj/tinySpring/aop/Advisor.java new file mode 100644 index 0000000..af29ced --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/Advisor.java @@ -0,0 +1,18 @@ +package com.ysj.tinySpring.aop; + +import org.aopalliance.aop.Advice; + +/** + * 通知器 + * 用于实现 具体的方法拦截,需要使用者编写,也就对应了 Spring 中的前置通知、后置通知、环切通知等。 + * + */ +public interface Advisor { + + /** + * 获取通知器(方法拦截器) + * @return + */ + Advice getAdvice(); + +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/AopProxy.java b/src+/main/java/com/ysj/tinySpring/aop/AopProxy.java new file mode 100644 index 0000000..6748b6c --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/AopProxy.java @@ -0,0 +1,16 @@ +package com.ysj.tinySpring.aop; + +/** + * AopProxy是个标志型接口 + * 暴露获取aop代理对象方法的接口 + * + */ +public interface AopProxy { + + /** + * 获取代理对象 + * @return + */ + Object getProxy(); + +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/AspectJAroundAdvice.java b/src+/main/java/com/ysj/tinySpring/aop/AspectJAroundAdvice.java new file mode 100644 index 0000000..07de29c --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/AspectJAroundAdvice.java @@ -0,0 +1,52 @@ +package com.ysj.tinySpring.aop; + +import java.lang.reflect.Method; + +import org.aopalliance.aop.Advice; +import org.aopalliance.intercept.MethodInterceptor; +import org.aopalliance.intercept.MethodInvocation; + +import com.ysj.tinySpring.beans.factory.BeanFactory; + +/** + * 环绕通知 + * 用AspectJ表达式匹配 + * + */ +public class AspectJAroundAdvice implements Advice, MethodInterceptor { + + private BeanFactory beanFactory; + + private Method aspectJAdviceMethod; + + private String aspectInstanceName; + + @Override + public Object invoke(MethodInvocation invocation) throws Throwable { + return aspectJAdviceMethod.invoke(beanFactory.getBean(aspectInstanceName), invocation); + } + + public BeanFactory getBeanFactory() { + return beanFactory; + } + + public void setBeanFactory(BeanFactory beanFactory) { + this.beanFactory = beanFactory; + } + + public Method getAspectJAdviceMethod() { + return aspectJAdviceMethod; + } + + public void setAspectJAdviceMethod(Method aspectJAdviceMethod) { + this.aspectJAdviceMethod = aspectJAdviceMethod; + } + + public String getAspectInstanceName() { + return aspectInstanceName; + } + + public void setAspectInstanceName(String aspectInstanceName) { + this.aspectInstanceName = aspectInstanceName; + } +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/AspectJAwareAdvisorAutoProxyCreator.java b/src+/main/java/com/ysj/tinySpring/aop/AspectJAwareAdvisorAutoProxyCreator.java new file mode 100644 index 0000000..160eb43 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/AspectJAwareAdvisorAutoProxyCreator.java @@ -0,0 +1,70 @@ +package com.ysj.tinySpring.aop; + +import java.util.List; + +import org.aopalliance.intercept.MethodInterceptor; + +import com.ysj.tinySpring.beans.BeanPostProcessor; +import com.ysj.tinySpring.beans.factory.AbstractBeanFactory; +import com.ysj.tinySpring.beans.factory.BeanFactory; + +/** + * 实现了BeanFactoryAware接口:这个接口提供了对 BeanFactory 的感知,这样,尽管它是容器中的一个 Bean,却 + * 可以获取容器 的引用,进而获取容器中所有的切点对象,决定对哪些对象的哪些方法进行代理。解决了 为哪些对象 + * 提供 AOP 的植入 的问题。 + * + */ +public class AspectJAwareAdvisorAutoProxyCreator implements BeanPostProcessor, BeanFactoryAware { + + private AbstractBeanFactory beanFactory; + + @Override + public Object postProcessBeforeInitialization(Object bean, String beanName) throws Exception { + return bean; + } + + /** + * 可以取看看AbstractBeanFactory的getBean()的实现 + * bean实例化后要进行初始化操作,会经过这个方法满足条件则生成相关的代理类并返回 + */ + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws Exception { + // 如果是切点通知器,则直接返回 + if (bean instanceof AspectJExpressionPointcutAdvisor) { + return bean; + } + // 如果bean是方法拦截器,则直接返回 + if (bean instanceof MethodInterceptor) { + return bean; + } + // 通过getBeansForType方法加载BeanFactory 中所有的 PointcutAdvisor(保证了 PointcutAdvisor 的实例化顺序优于普通 Bean。) + // AspectJ方式实现织入,这里它会扫描所有Pointcut,并对bean做织入。 + List advisors = beanFactory + .getBeansForType(AspectJExpressionPointcutAdvisor.class); + for (AspectJExpressionPointcutAdvisor advisor : advisors) { + // 匹配要拦截的类 + // 使用AspectJExpressionPointcut的matches匹配器,判断当前对象是不是要拦截的类的对象。 + if (advisor.getPointcut().getClassFilter().matches(bean.getClass())) { + // ProxyFactory继承了AdvisedSupport,所以内部封装了TargetSource和MethodInterceptor的元数据对象 + ProxyFactory advisedSupport = new ProxyFactory(); + // 设置切点的方法拦截器 + advisedSupport.setMethodInterceptor((MethodInterceptor) advisor.getAdvice()); + // 设置切点的方法匹配器 + // 利用AspectJ表达式进行方法匹配 + // AspectJExpressionPointcutAdvisor里的AspectJExpressionPointcut的getMethodMatcher()方法 + advisedSupport.setMethodMatcher(advisor.getPointcut().getMethodMatcher()); + // 是要拦截的类, 生成一个 TargetSource(要拦截的对象和其类型)(被代理对象) + TargetSource targetSource = new TargetSource(bean, bean.getClass(), bean.getClass().getInterfaces()); + advisedSupport.setTargetSource(targetSource); + // 交给实现了 AopProxy接口的getProxy方法的ProxyFactory去生成代理对象 + return advisedSupport.getProxy(); + } + } + return bean; + } + + @Override + public void setBeanFactory(BeanFactory beanFactory) throws Exception { + this.beanFactory = (AbstractBeanFactory) beanFactory; + } +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/AspectJExpressionPointcut.java b/src+/main/java/com/ysj/tinySpring/aop/AspectJExpressionPointcut.java new file mode 100644 index 0000000..f5f2042 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/AspectJExpressionPointcut.java @@ -0,0 +1,91 @@ +package com.ysj.tinySpring.aop; + +import java.lang.reflect.Method; +import java.util.HashSet; +import java.util.Set; + +import org.aspectj.weaver.tools.PointcutExpression; +import org.aspectj.weaver.tools.PointcutParser; +import org.aspectj.weaver.tools.PointcutPrimitive; +import org.aspectj.weaver.tools.ShadowMatch; + +/** + * 通过AspectJ表达式识别切点 + * + */ +public class AspectJExpressionPointcut implements Pointcut, ClassFilter, MethodMatcher { + + private PointcutParser pointcutParser; + + private String expression; + + private PointcutExpression pointcutExpression; + + private static final Set DEFAULT_SUPPORTED_PRIMITIVES = new HashSet(); + + static { + DEFAULT_SUPPORTED_PRIMITIVES.add(PointcutPrimitive.EXECUTION); + DEFAULT_SUPPORTED_PRIMITIVES.add(PointcutPrimitive.ARGS); + DEFAULT_SUPPORTED_PRIMITIVES.add(PointcutPrimitive.REFERENCE); + DEFAULT_SUPPORTED_PRIMITIVES.add(PointcutPrimitive.THIS); + DEFAULT_SUPPORTED_PRIMITIVES.add(PointcutPrimitive.TARGET); + DEFAULT_SUPPORTED_PRIMITIVES.add(PointcutPrimitive.WITHIN); + DEFAULT_SUPPORTED_PRIMITIVES.add(PointcutPrimitive.AT_ANNOTATION); + DEFAULT_SUPPORTED_PRIMITIVES.add(PointcutPrimitive.AT_WITHIN); + DEFAULT_SUPPORTED_PRIMITIVES.add(PointcutPrimitive.AT_ARGS); + DEFAULT_SUPPORTED_PRIMITIVES.add(PointcutPrimitive.AT_TARGET); + } + + public AspectJExpressionPointcut() { + this(DEFAULT_SUPPORTED_PRIMITIVES); + } + + public AspectJExpressionPointcut(Set supportedPrimitives) { + pointcutParser = PointcutParser + .getPointcutParserSupportingSpecifiedPrimitivesAndUsingContextClassloaderForResolution(supportedPrimitives); + } + + protected void checkReadyToMatch() { + if (pointcutExpression == null) { + pointcutExpression = buildPointcutExpression(); + } + } + + private PointcutExpression buildPointcutExpression() { + return pointcutParser.parsePointcutExpression(expression); + } + + public void setExpression(String expression) { + this.expression = expression; + } + + @Override + public ClassFilter getClassFilter() { + return this; + } + + @Override + public MethodMatcher getMethodMatcher() { + return this; + } + + @Override + public boolean matches(Class targetClass) { + checkReadyToMatch(); + return pointcutExpression.couldMatchJoinPointsInType(targetClass); + } + + @Override + public boolean matches(Method method, Class targetClass) { + checkReadyToMatch(); + ShadowMatch shadowMatch = pointcutExpression.matchesMethodExecution(method); + if (shadowMatch.alwaysMatches()) { + return true; + } else if (shadowMatch.neverMatches()) { + return false; + } + // TODO:其他情况不判断了!见org.springframework.aop.aspectj.RuntimeTestWalker + return false; + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/AspectJExpressionPointcutAdvisor.java b/src+/main/java/com/ysj/tinySpring/aop/AspectJExpressionPointcutAdvisor.java new file mode 100644 index 0000000..2f8a252 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/AspectJExpressionPointcutAdvisor.java @@ -0,0 +1,42 @@ +package com.ysj.tinySpring.aop; + +import org.aopalliance.aop.Advice; + +/** + * AspectJ表达式切点通知器 + * + */ +public class AspectJExpressionPointcutAdvisor implements PointcutAdvisor { + + /** + * AspectJ表达式切点匹配器 + * AspectJ表达式匹配的切点,默认有初始化。也默认有了MethodMatcher(AspectJExpressionPointcut实现了MethodMatcher接口) + */ + private AspectJExpressionPointcut pointcut = new AspectJExpressionPointcut(); + + /** + * 方法拦截器 + * 这个要用户自己去xml文件里配置方法拦截器(MethodInterceptor继承了Advice接口), + * 在AspectJAwareAdvisorAutoProxyCreator设置代理对象的方法拦截器时将Advispr强转为MethodInterceptor + */ + private Advice advice; + + public void setAdvice(Advice advice) { + this.advice = advice; + } + + public void setExpression(String expression) { + this.pointcut.setExpression(expression); + } + + @Override + public Advice getAdvice() { + return advice; + } + + @Override + public Pointcut getPointcut() { + return pointcut; + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/BeanFactoryAware.java b/src+/main/java/com/ysj/tinySpring/aop/BeanFactoryAware.java new file mode 100644 index 0000000..505908a --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/BeanFactoryAware.java @@ -0,0 +1,17 @@ +package com.ysj.tinySpring.aop; + +import com.ysj.tinySpring.beans.factory.BeanFactory; + +/** + * 实现该接口则有操作beanFactory的能力 + * + * 容器的引用传入到 Bean 中去,这样,Bean 将获取容器的引用,获取对容器操作的权限,也就允许了 编写 + * 扩展 IoC 容器的功能的 Bean。 + * 例如:获取容器中所有的 切点对象,决定对哪些对象的哪些方法进行代理。解决了 为哪些对象提供 AOP 的植入 的问题。 + * + */ +public interface BeanFactoryAware { + + void setBeanFactory(BeanFactory beanFactory) throws Exception; + +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/Cglib2AopProxy.java b/src+/main/java/com/ysj/tinySpring/aop/Cglib2AopProxy.java new file mode 100644 index 0000000..980d2d2 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/Cglib2AopProxy.java @@ -0,0 +1,94 @@ +package com.ysj.tinySpring.aop; + +import java.lang.reflect.Method; + +import net.sf.cglib.proxy.Enhancer; +import net.sf.cglib.proxy.MethodInterceptor; +import net.sf.cglib.proxy.MethodProxy; + +/** + * cglib是针对类来实现代理的,他的原理是对指定的目标类生成一个子类,并覆盖其中方法实现增强,但 + * 因为采用的是继承, 所以不能对final修饰的类进行代理。 + * + */ +public class Cglib2AopProxy extends AbstractAopProxy { + + public Cglib2AopProxy(AdvisedSupport advised) { + super(advised); + } + + @Override + public Object getProxy() { + Enhancer enhancer = new Enhancer(); + enhancer.setSuperclass(advised.getTargetSource().getTargetClass()); + enhancer.setInterfaces(advised.getTargetSource().getInterfaces()); + /** Enhancer.java中setCallback方法源码 + * public void setCallback(final Callback callback) { + * setCallbacks(new Callback[]{ callback }); + * } + */ + // 设置回调方法 + enhancer.setCallback(new DynamicAdvisedInterceptor(advised)); + Object enhanced = enhancer.create(); + return enhanced; + } + + /** 注意该类实现的是net.sf.cglib.proxy.MethodInterceptor,不是aopalliance的MethodInterceptor. + * net.sf.cglib.proxy.MethodInterceptor.java: + + * public interface MethodInterceptor extends Callback{ + + // All generated proxied methods call this method instead of the original method. + // The original method may either be invoked by normal reflection using the Method object, + // or by using the MethodProxy (faster). + public Object intercept(Object obj, java.lang.reflect.Method method, Object[] args, + MethodProxy proxy) throws Throwable; + + * } + * + */ + private static class DynamicAdvisedInterceptor implements MethodInterceptor { + + private AdvisedSupport advised; + + // 用户写的的方法拦截器 + private org.aopalliance.intercept.MethodInterceptor delegateMethodInterceptor; + + private DynamicAdvisedInterceptor(AdvisedSupport advised) { + this.advised = advised; + this.delegateMethodInterceptor = advised.getMethodInterceptor(); + } + + // 拦截代理对象的所有方法 + @Override + public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { + // 如果advised.getMethodMatcher()为空(编程式的使用aop,例如:Cglib2AopProxyTest.java),拦截该类的所有方法 + // 如果有方法匹配器(声明式的在xml文件里配置了AOP)并且匹配方法成功就拦截指定的方法 + if (advised.getMethodMatcher() == null + || advised.getMethodMatcher().matches(method, advised.getTargetSource().getTargetClass())) { + // delegateMethodInterceptor通过advised.getMethodInterceptor()得到用户写的方法拦截器 + // 返回去调用用户写的拦截器的invoke方法(用户根据需要在调用proceed方法前后添加相应行为,例如:TimerInterceptor.java) + return delegateMethodInterceptor.invoke(new CglibMethodInvocation(advised.getTargetSource().getTarget(), method, args, proxy)); + } + // 有AspectJ表达式,但没有匹配该方法,返回通过methodProxy调用原始对象的该方法 + return new CglibMethodInvocation(advised.getTargetSource().getTarget(), method, args, proxy).proceed(); + } + } + + private static class CglibMethodInvocation extends ReflectiveMethodInvocation { + // 方法代理 + private final MethodProxy methodProxy; + + public CglibMethodInvocation(Object target, Method method, Object[] args, MethodProxy methodProxy) { + super(target, method, args); + this.methodProxy = methodProxy; + } + + // 通过methodProxy调用原始对象的方法 + @Override + public Object proceed() throws Throwable { + return this.methodProxy.invoke(this.target, this.arguments); + } + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/ClassFilter.java b/src+/main/java/com/ysj/tinySpring/aop/ClassFilter.java new file mode 100644 index 0000000..11c0e88 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/ClassFilter.java @@ -0,0 +1,16 @@ +package com.ysj.tinySpring.aop; + +/** + * 类匹配器 + * + */ +public interface ClassFilter { + + /** + * 用于匹配targetClass是否是要拦截的类 + * @param targetClass + * @return + */ + boolean matches(Class targetClass); + +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/JdkDynamicAopProxy.java b/src+/main/java/com/ysj/tinySpring/aop/JdkDynamicAopProxy.java new file mode 100644 index 0000000..b3be1ea --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/JdkDynamicAopProxy.java @@ -0,0 +1,48 @@ +package com.ysj.tinySpring.aop; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; + +import org.aopalliance.intercept.MethodInterceptor; + +/** + * 一个基于JDK的动态代理 + * 只能针对实现了接口的类生成代理。于是我们就有了基本的织入功能。 + * 注意:实现了InvocationHandler接口,可以通过重写invoke方法进行控制访问 + * + */ +public class JdkDynamicAopProxy extends AbstractAopProxy implements InvocationHandler { + + public JdkDynamicAopProxy(AdvisedSupport advised) { + super(advised); + } + + /** + * 获取代理对象 + */ + @Override + public Object getProxy() { + return Proxy.newProxyInstance(getClass().getClassLoader(), + advised.getTargetSource().getInterfaces(), + this); + } + + /** + * 控制访问 + */ + @Override + public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { + // 从AdvisedSupport里获取方法拦截器 + MethodInterceptor methodInterceptor = advised.getMethodInterceptor(); + // 如果方法匹配器存在,且匹配该对象的该方法匹配成功,则调用用户提供的方法拦截器的invoke方法 + if (advised.getMethodMatcher() != null + && advised.getMethodMatcher().matches(method, advised.getTargetSource().getTarget().getClass())) { + return methodInterceptor.invoke(new ReflectiveMethodInvocation(advised.getTargetSource().getTarget(), + method, args)); + } else { + // 否则的话还是调用原对象的相关方法 + return method.invoke(advised.getTargetSource().getTarget(), args); + } + } +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/MethodMatcher.java b/src+/main/java/com/ysj/tinySpring/aop/MethodMatcher.java new file mode 100644 index 0000000..d2d7ed8 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/MethodMatcher.java @@ -0,0 +1,19 @@ +package com.ysj.tinySpring.aop; + +import java.lang.reflect.Method; + +/** + * 方法匹配器 + * + */ +public interface MethodMatcher { + + /** + * 匹配该方法是否是要拦截的方法 + * @param method + * @param targetClass + * @return + */ + boolean matches(Method method, Class targetClass); + +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/Pointcut.java b/src+/main/java/com/ysj/tinySpring/aop/Pointcut.java new file mode 100644 index 0000000..537a06b --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/Pointcut.java @@ -0,0 +1,25 @@ +package com.ysj.tinySpring.aop; + + +/** + * 切点, 确定是对什么类的什么方法进行AOP(就是确定在哪切) + * + */ +public interface Pointcut { + + /** + * 获取 ClassFilter 对象 + * 类名匹配(用于 筛选要代理的目标对象) + * @return + */ + ClassFilter getClassFilter(); + + + /** + * 获取一个 MethodMatcher 对象 + * 方法名匹配 + * @return + */ + MethodMatcher getMethodMatcher(); + +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/PointcutAdvisor.java b/src+/main/java/com/ysj/tinySpring/aop/PointcutAdvisor.java new file mode 100644 index 0000000..5826617 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/PointcutAdvisor.java @@ -0,0 +1,16 @@ +package com.ysj.tinySpring.aop; + + +/** + * 切点通知器 + * + */ +public interface PointcutAdvisor extends Advisor{ + + /** + * 获得切点 + * @return + */ + Pointcut getPointcut(); + +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/ProxyFactory.java b/src+/main/java/com/ysj/tinySpring/aop/ProxyFactory.java new file mode 100644 index 0000000..7e3a8b4 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/ProxyFactory.java @@ -0,0 +1,17 @@ +package com.ysj.tinySpring.aop; + + +public class ProxyFactory extends AdvisedSupport implements AopProxy { + + // 获取代理对象 + @Override + public Object getProxy() { + return createAopProxy().getProxy(); + } + + // 动态代理:通过Cglib代理提供代理对象 + protected final AopProxy createAopProxy() { + return new Cglib2AopProxy(this); + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/ReflectiveMethodInvocation.java b/src+/main/java/com/ysj/tinySpring/aop/ReflectiveMethodInvocation.java new file mode 100644 index 0000000..2f28ea5 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/ReflectiveMethodInvocation.java @@ -0,0 +1,63 @@ +package com.ysj.tinySpring.aop; + +import java.lang.reflect.AccessibleObject; +import java.lang.reflect.Method; + +import org.aopalliance.intercept.MethodInvocation; + +/** + * 封装被代理对象的方法 + * + */ +public class ReflectiveMethodInvocation implements MethodInvocation { + + // 原对象 + protected Object target; + + protected Method method; + + protected Object[] arguments; + + public ReflectiveMethodInvocation(Object target, Method method, Object[] arguments) { + this.target = target; + this.method = method; + this.arguments = arguments; + } + + @Override + public Object[] getArguments() { + return arguments; + } + + @Override + public AccessibleObject getStaticPart() { + return method; + } + + @Override + public Object getThis() { + return target; + } + + /** + * 调用被拦截对象的方法 + */ + @Override + public Object proceed() throws Throwable { + // tiny-spring这里是调用原始对象的方法 + // 不支持拦截器链 + /* + 为了支持拦截器链,可以做出以下修改: + 将 proceed() 方法修改为调用代理对象的方法 method.invoke(proxy,args)。 + 在代理对象的 InvocationHandler 的 invoke 函数中,查看拦截器列表,如果有拦截器,则调用第一个拦截器并 + 返回,否则调用原始对象的方法。 + */ + return method.invoke(target, arguments); + } + + @Override + public Method getMethod() { + return method; + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/aop/TargetSource.java b/src+/main/java/com/ysj/tinySpring/aop/TargetSource.java new file mode 100644 index 0000000..26a72fa --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/aop/TargetSource.java @@ -0,0 +1,35 @@ +package com.ysj.tinySpring.aop; + +/** + * 封装被代理的对象的类的相关信息 + * + */ +public class TargetSource { + + // 原对象 + private Object target; + + private Class targetClass; + + private Class[] interfaces; + + + public TargetSource(Object target, Class targetClass,Class... interfaces) { + this.target = target; + this.targetClass = targetClass; + this.interfaces = interfaces; + } + + public Class getTargetClass() { + return targetClass; + } + + public Object getTarget() { + return target; + } + + public Class[] getInterfaces() { + return interfaces; + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/beans/AbstractBeanDefinitionReader.java b/src+/main/java/com/ysj/tinySpring/beans/AbstractBeanDefinitionReader.java new file mode 100644 index 0000000..b8eb837 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/beans/AbstractBeanDefinitionReader.java @@ -0,0 +1,38 @@ +package com.ysj.tinySpring.beans; + +import java.util.HashMap; +import java.util.Map; + +import com.ysj.tinySpring.beans.io.ResourceLoader; + +/** + * 实现 BeanDefinitionReader 接口的抽象类(未具体实现 loadBeanDefinitions,而是规范了 + * BeanDefinitionReader 的基本结构) + */ +public abstract class AbstractBeanDefinitionReader implements BeanDefinitionReader { + + /** + * 通过String - beanDefinition 键值对保存IoC容器里的类定义。 + */ + private Map registry; + + /** + * 保存了类加载器,使用时,只需要向其 loadBeanDefinitions() 传入一个资源地址,就可以自动调用其类加载器, + * 并把解析到的 BeanDefinition 保存到 registry 中去。 + */ + private ResourceLoader resourceLoader; + + protected AbstractBeanDefinitionReader(ResourceLoader resourceLoader) { + this.registry = new HashMap(); + this.resourceLoader = resourceLoader; + } + + public Map getRegistry() { + return registry; + } + + public ResourceLoader getResourceLoader() { + return resourceLoader; + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/beans/BeanDefinition.java b/src+/main/java/com/ysj/tinySpring/beans/BeanDefinition.java new file mode 100644 index 0000000..509fb67 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/beans/BeanDefinition.java @@ -0,0 +1,71 @@ +package com.ysj.tinySpring.beans; + +/** + * Bean在 IoC 容器中的定义, IoC 容器可以根据这个定义来生成实例 的问题 + * + * 以 BeanDefinition 类为核心发散出的几个类,都是用于解决 Bean 的具体定义问题,包括 Bean 的名字是什么、 + * 它的类型是什么,它的属性赋予了哪些值或者引用 + * + */ +public class BeanDefinition { + + private Object bean; + + /** + * bean的类型 + * 根据其 类型 可以生成一个类实例,然后可以把 属性 注入进去。 + */ + private Class beanClass; + + /** + * bean的名字 + */ + private String beanClassName; + + /** + * bean的属性集合 + * 每个属性都是键值对 String - Object + */ + private PropertyValues propertyValues = new PropertyValues(); + + public BeanDefinition() { } + + + public Object getBean() { + return bean; + } + + public void setBean(Object bean) { + this.bean = bean; + } + + public Class getBeanClass() { + return beanClass; + } + + public void setBeanClass(Class beanClass) { + this.beanClass = beanClass; + } + + public String getBeanClassName() { + return beanClassName; + } + + public void setBeanClassName(String beanClassName) { + this.beanClassName = beanClassName; + try { + this.beanClass = Class.forName(beanClassName); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + } + + public PropertyValues getPropertyValues() { + return propertyValues; + } + + public void setPropertyValues(PropertyValues propertyValues) { + this.propertyValues = propertyValues; + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/beans/BeanDefinitionReader.java b/src+/main/java/com/ysj/tinySpring/beans/BeanDefinitionReader.java new file mode 100644 index 0000000..e649fcd --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/beans/BeanDefinitionReader.java @@ -0,0 +1,17 @@ +package com.ysj.tinySpring.beans; + +/** + * 解析 BeanDefinition 的接口 + * 暴露加载bean定义的方法 + * + */ +public interface BeanDefinitionReader { + + /** + * 根据地址加载bean的定义 + * @param location + * @throws Exception + */ + void loadBeanDefinitions(String location) throws Exception; + +} diff --git a/src+/main/java/com/ysj/tinySpring/beans/BeanPostProcessor.java b/src+/main/java/com/ysj/tinySpring/beans/BeanPostProcessor.java new file mode 100644 index 0000000..15bf511 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/beans/BeanPostProcessor.java @@ -0,0 +1,15 @@ +package com.ysj.tinySpring.beans; + +/** + * 用于在bean定义初始化时嵌入相关操作 + * 例如:在 postProcessorAfterInitialization 方法中,使用动态代理的方式,返回一个对象的代理对象。解决了 + * 在 IoC 容器的何处植入 AOP 的问题。 + * + */ +public interface BeanPostProcessor { + + Object postProcessBeforeInitialization(Object bean, String beanName) throws Exception; + + Object postProcessAfterInitialization(Object bean, String beanName) throws Exception; + +} diff --git a/src+/main/java/com/ysj/tinySpring/beans/PropertyValue.java b/src+/main/java/com/ysj/tinySpring/beans/PropertyValue.java new file mode 100644 index 0000000..4deffdb --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/beans/PropertyValue.java @@ -0,0 +1,30 @@ +package com.ysj.tinySpring.beans; + +/** + * 封装bean的属性 + * + */ +public class PropertyValue { + + private final String name; + + /** + * 在 Spring 的 XML 中的 property 中,键是 key ,值是 value 或者 ref。对于 value 只要直接注入属性就行 + * 了,但是 ref 要先进行解析,转化为对应的实际 Object。 + */ + private final Object value; + + public PropertyValue(String name, Object value) { + this.name = name; + this.value = value; + } + + public String getName() { + return name; + } + + public Object getValue() { + return value; + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/beans/PropertyValues.java b/src+/main/java/com/ysj/tinySpring/beans/PropertyValues.java new file mode 100644 index 0000000..085e81c --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/beans/PropertyValues.java @@ -0,0 +1,25 @@ +package com.ysj.tinySpring.beans; + +import java.util.ArrayList; +import java.util.List; + +/** + * 封装一个对象所有的PropertyValue。 + * 为什么封装而不是直接用List? 因为可以封装一些操作。 + * + */ +public class PropertyValues { + + private final List propertyValueList = new ArrayList(); + + public PropertyValues() {} + + public void addPropertyValue(PropertyValue pv) { + this.propertyValueList.add(pv); + } + + public List getPropertyValuesList() { + return this.propertyValueList; + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/beans/factory/AbstractBeanFactory.java b/src+/main/java/com/ysj/tinySpring/beans/factory/AbstractBeanFactory.java new file mode 100644 index 0000000..d76100b --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/beans/factory/AbstractBeanFactory.java @@ -0,0 +1,143 @@ +package com.ysj.tinySpring.beans.factory; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +import com.ysj.tinySpring.beans.BeanDefinition; +import com.ysj.tinySpring.beans.BeanPostProcessor; + +/** + * BeanFactory 的一种抽象类实现,规范了 IoC 容器的基本结构。 + * + * IoC 容器的结构:AbstractBeanFactory 维护一个 beanDefinitionMap 哈希表用于保存类的定义信息(BeanDefinition)。 + * + */ +public class AbstractBeanFactory implements BeanFactory{ + + /** + * bean定义的信息和bean的name保存在线程安全的HashMap中 + */ + private Map beanDefinitionMap = new ConcurrentHashMap(); + + /** + * 保存完成注册的bean的name + */ + private final List beanDefinitionNames = new ArrayList(); + + /** + * 增加bean处理程序: + * 例如通过AspectJAwareAdvisorAutoProxyCreator#postProcessAfterInitialization()实现AOP的织入 + */ + private List beanPostProcessors = new ArrayList(); + + /** + * 根据名字获取bean实例(实例化并初始化bean) + */ + @Override + public Object getBean(String name) throws Exception { + // 获取该bean的定义 + BeanDefinition beanDefinition = beanDefinitionMap.get(name); + // 如果没有这个bean的定义就抛异常 + if (beanDefinition == null) { + throw new IllegalArgumentException("No bean named " + name + " is defined"); + } + Object bean = beanDefinition.getBean(); + // 如果还没有装配bean + if (bean == null) { + // 装配bean(实例化并注入属性) + bean = doCreateBean(beanDefinition); + // 初始化bean + // 例如:生成相关代理类,用于实现AOP织入 + bean = initializeBean(bean, name); + beanDefinition.setBean(bean); + } + return bean; + } + + // 装载bean + protected Object doCreateBean(BeanDefinition beanDefinition) throws Exception { + // 实例化bean + Object bean = createBeanInstance(beanDefinition); + beanDefinition.setBean(bean); + // 注入属性的hook方法(参考模板方法设计模式中的hook方法)交给子类去实现 + // 例如:AutowireCapableBeanFactory.java实现了自动装配 + applyPropertyValues(bean, beanDefinition); + return bean; + } + + protected Object createBeanInstance(BeanDefinition beanDefinition) throws Exception { + return beanDefinition.getBeanClass().newInstance(); + } + + protected void applyPropertyValues(Object bean, BeanDefinition beanDefinition) throws Exception { + + } + + /** + * 初始化bean + * 可在此进行AOP的相关操作:例如生成相关代理类,并返回 + * @param bean + * @param name + * @return + * @throws Exception + */ + protected Object initializeBean(Object bean, String name) throws Exception { + for (BeanPostProcessor beanPostProcessor : beanPostProcessors) { + bean = beanPostProcessor.postProcessBeforeInitialization(bean, name); + } + + // 可以看看AutowireCapableBeanFactory的postProcessAfterInitialization()方法实现 + // 返回的可能是代理对象 + for (BeanPostProcessor beanPostProcessor : beanPostProcessors) { + bean = beanPostProcessor.postProcessAfterInitialization(bean, name); + } + return bean; + } + + /** + * 预处理bean的定义,将bean的名字提前存好,实现Ioc容器中存储单例bean + * @throws Exception + */ + public void preInstantiateSingletons() throws Exception { + Iterator it = this.beanDefinitionNames.iterator(); + while (it.hasNext()) { + String beanName = (String) it.next(); + getBean(beanName); + } + } + + /** + * 根据类型获取所有bean实例 + * @param type + * @return + * @throws Exception + */ + public List getBeansForType(Class type) throws Exception { + List beans = new ArrayList(); + for (String beanDefinitionName : beanDefinitionNames) { + /** + * boolean isAssignableFrom(Class cls) + * 判定此 Class 对象所表示的类或接口与指定的 Class 参数所表示的类或接口是否相同,或是否是其超类或超接口。 + */ + if (type.isAssignableFrom(beanDefinitionMap.get(beanDefinitionName).getBeanClass())) { + beans.add(getBean(beanDefinitionName)); + } + } + return beans; + } + + public void registerBeanDefinition(String name, BeanDefinition beanDefinition) throws Exception { + beanDefinitionMap.put(name, beanDefinition); + beanDefinitionNames.add(name); + } + + // 增加bean处理程序,例如AspectJAwareAdvisorAutoProxyCreator#postProcessAfterInitialization() + public void addBeanPostProcessor(BeanPostProcessor beanPostProcessor) throws Exception { + this.beanPostProcessors.add(beanPostProcessor); + } + + +} diff --git a/src+/main/java/com/ysj/tinySpring/beans/factory/AutowireCapableBeanFactory.java b/src+/main/java/com/ysj/tinySpring/beans/factory/AutowireCapableBeanFactory.java new file mode 100644 index 0000000..6ff9332 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/beans/factory/AutowireCapableBeanFactory.java @@ -0,0 +1,61 @@ +package com.ysj.tinySpring.beans.factory; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +import com.ysj.tinySpring.BeanReference; +import com.ysj.tinySpring.aop.BeanFactoryAware; +import com.ysj.tinySpring.beans.BeanDefinition; +import com.ysj.tinySpring.beans.PropertyValue; + +/** + * 可实现自动装配的BeanFactory + * + */ +public class AutowireCapableBeanFactory extends AbstractBeanFactory{ + + /** + * 通过反射自动装配bean的所有属性 + */ + protected void applyPropertyValues(Object bean, BeanDefinition beanDefinition) throws Exception { + if (bean instanceof BeanFactoryAware) { + ((BeanFactoryAware) bean).setBeanFactory(this); + } + for (PropertyValue propertyValue : beanDefinition.getPropertyValues().getPropertyValuesList()) { + Object value = propertyValue.getValue(); + // 如果属性是ref而不是value类型就先实例化那个ref的bean,然后装载到这个value里 + if (value instanceof BeanReference) { + BeanReference beanReference = (BeanReference) value; + // 先实例化ref的bean再装配进去 + value = getBean(beanReference.getName()); + } + + try{ + /** + * 例如: + + + 先获取dog对象的setId方法,然后通过反射调用该方法将value设置进去 + getDeclaredMethod方法的第一个参数是方法名,第二个参数是该方法的参数列表 + */ + Method declaredMethod = bean.getClass().getDeclaredMethod( + // 拼接方法名 + "set" + propertyValue.getName().substring(0, 1).toUpperCase() + + propertyValue.getName().substring(1), + value.getClass()); + + /*System.out.println("set" + propertyValue.getName().substring(0, 1).toUpperCase() + + propertyValue.getName().substring(1));*/ + + declaredMethod.setAccessible(true); + declaredMethod.invoke(bean, value); + } catch (NoSuchMethodException e) { + // 如果该bean没有setXXX的类似方法,就直接将value设置到相应的属性域内 + Field declaredField = bean.getClass().getDeclaredField(propertyValue.getName()); + declaredField.setAccessible(true); + declaredField.set(bean, value); + } + } + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/beans/factory/BeanFactory.java b/src+/main/java/com/ysj/tinySpring/beans/factory/BeanFactory.java new file mode 100644 index 0000000..ce4fe31 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/beans/factory/BeanFactory.java @@ -0,0 +1,20 @@ +package com.ysj.tinySpring.beans.factory; + +/** + * 标识一个 IoC 容器。 + * + * 以 BeanFactory 接口为核心发散出的几个类,都是用于解决 IoC 容器在 已经获取 Bean 的 定义 的情况下, + * 如何装配、获取 Bean 实例 的问题。 + * + */ +public interface BeanFactory { + + /** + * 通过 getBean(String) 方法来 获取bean实例 + * @param name + * @return + * @throws Exception + */ + Object getBean(String name) throws Exception; + +} diff --git a/src+/main/java/com/ysj/tinySpring/beans/io/Resource.java b/src+/main/java/com/ysj/tinySpring/beans/io/Resource.java new file mode 100644 index 0000000..1f2ecb2 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/beans/io/Resource.java @@ -0,0 +1,21 @@ +package com.ysj.tinySpring.beans.io; + +import java.io.IOException; +import java.io.InputStream; + +/** + * 标识一个外部资源。 + * 以 Resource 接口为核心发散出的几个类,都是用于解决 IoC 容器中的内容从哪里来的问题,也就是 配置文件 + * 从哪里读取、配置文件如何读取 的问题。 + * + */ +public interface Resource { + + /** + * 通过 getInputStream() 方法 获取资源的输入流 。 + * @return + * @throws IOException + */ + InputStream getInputStream() throws IOException; + +} diff --git a/src+/main/java/com/ysj/tinySpring/beans/io/ResourceLoader.java b/src+/main/java/com/ysj/tinySpring/beans/io/ResourceLoader.java new file mode 100644 index 0000000..ff1db92 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/beans/io/ResourceLoader.java @@ -0,0 +1,26 @@ +package com.ysj.tinySpring.beans.io; + +import java.net.URL; + +/** + * 资源加载类 + * + */ +public class ResourceLoader { + + /** + * 获取一个 Resouce 对象 + * @param location + * @return + */ + public Resource getResource(String location){ + // 通过给定名称查找资源 + URL resource = this.getClass().getClassLoader().getResource(location); + /* + * 注: 这里在设计上有一定的问题,ResourceLoader 直接返回了一个 UrlResource,更好的方法是声明 + * 一个 ResourceLoader 接口,再实现一个 UrlResourceLoader 类用于加载 UrlResource。 + */ + return new UrlResource(resource); + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/beans/io/UrlResource.java b/src+/main/java/com/ysj/tinySpring/beans/io/UrlResource.java new file mode 100644 index 0000000..23ef055 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/beans/io/UrlResource.java @@ -0,0 +1,33 @@ +package com.ysj.tinySpring.beans.io; + +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.net.URLConnection; + +/** + * 实现 Resource 接口的资源类,通过 URL 获取资源。 + * + */ +public class UrlResource implements Resource{ + + /** + * 通过这个 URL 获取资源 + */ + private final URL url; + + public UrlResource(URL url) { + this.url = url; + } + + /** + * 通过URL获取资源 + */ + @Override + public InputStream getInputStream() throws IOException { + URLConnection urlConnection = url.openConnection(); + urlConnection.connect(); + return urlConnection.getInputStream(); + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/beans/xml/XmlBeanDefinitionReader.java b/src+/main/java/com/ysj/tinySpring/beans/xml/XmlBeanDefinitionReader.java new file mode 100644 index 0000000..657619b --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/beans/xml/XmlBeanDefinitionReader.java @@ -0,0 +1,128 @@ +package com.ysj.tinySpring.beans.xml; + +import java.io.InputStream; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import com.ysj.tinySpring.BeanReference; +import com.ysj.tinySpring.beans.AbstractBeanDefinitionReader; +import com.ysj.tinySpring.beans.BeanDefinition; +import com.ysj.tinySpring.beans.PropertyValue; +import com.ysj.tinySpring.beans.io.ResourceLoader; + +/** + * 从 XML 文件中读取bean的定义。具体实现了 loadBeanDefinitions() 方法 + * 注意: 在loadBeanDefinitions中并没有实例化bean,而只是注册了bean的定义 + * + */ +public class XmlBeanDefinitionReader extends AbstractBeanDefinitionReader{ + + public XmlBeanDefinitionReader(ResourceLoader resourceLoader) { + super(resourceLoader); + } + + /** + * 加载并通过bean定义注册bean + */ + @Override + public void loadBeanDefinitions(String location) throws Exception { + // 获取资源输入流 + InputStream inputStream = getResourceLoader().getResource(location).getInputStream(); + /** + * 从xml文件中读取所有bean的定义,并注册到registry中 + * 注意: 此时bean定义里并没有实例化该bean + */ + doLoadBeanDefinitions(inputStream); + } + + protected void doLoadBeanDefinitions(InputStream inputStream) throws Exception { + // 获取工厂 + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + // 获取生成器 + DocumentBuilder docBuilder = factory.newDocumentBuilder(); + // 解析为Document + Document doc = docBuilder.parse(inputStream); + // 解析并注册其中的bean + registerBeanDefinitions(doc); + inputStream.close(); + } + + public void registerBeanDefinitions(Document doc) { + // 获取根标签 + Element root = doc.getDocumentElement(); + + parseBeanDefinitions(root); + } + + protected void parseBeanDefinitions(Element root) { + // 获取所有下的 + NodeList nodeList = root.getChildNodes(); + for (int i = 0; i < nodeList.getLength(); i++) { + Node node = nodeList.item(i); + // 如果该子标签是Element + if (node instanceof Element) { + Element ele = (Element) node; + // 解析bean标签 + processBeanDefinition(ele); + } + } + } + + /** + * 处理(解析)bean标签 + * @param ele + */ + protected void processBeanDefinition(Element ele) { + // 获取bean标签的id属性作为bean的name + String name = ele.getAttribute("id"); + // 获取bean标签的class属性作为bean的className + String className = ele.getAttribute("class"); + + BeanDefinition beanDefinition = new BeanDefinition(); + // 解析bean标签下的property子标签 + processProperty(ele, beanDefinition); + // 设置className的同时,也在内部设置了Class + beanDefinition.setBeanClassName(className); + // 注册类定义 + getRegistry().put(name, beanDefinition); + } + + /** + * 解析bean标签的property子标签 + * @param ele + * @param beanDefinition + */ + private void processProperty(Element ele, BeanDefinition beanDefinition) { + // 获取所有property标签 + NodeList propertyNodes = ele.getElementsByTagName("property"); + for (int i = 0; i < propertyNodes.getLength(); i++) { + Node node = propertyNodes.item(i); + if (node instanceof Element) { + Element propertyEle = (Element) node; + String name = propertyEle.getAttribute("name"); + String value = propertyEle.getAttribute("value"); + // 如果是value型的属性值 + if (value != null && value.length() > 0) { + beanDefinition.getPropertyValues().addPropertyValue(new PropertyValue(name, value)); + } else { + // 否则是ref型的属性值 + String ref = propertyEle.getAttribute("ref"); + if (ref == null || ref.length() == 0) { + throw new IllegalArgumentException("Configuration problem: element for property '" + + name + "' must specify a ref or value"); + } + BeanReference beanReference = new BeanReference(ref); + // 保存一个ref型属性值的属性 + beanDefinition.getPropertyValues().addPropertyValue(new PropertyValue(name, beanReference)); + } + } + } + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/context/AbstractApplicationContext.java b/src+/main/java/com/ysj/tinySpring/context/AbstractApplicationContext.java new file mode 100644 index 0000000..9d037e2 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/context/AbstractApplicationContext.java @@ -0,0 +1,68 @@ +package com.ysj.tinySpring.context; + +import java.util.List; + +import com.ysj.tinySpring.beans.BeanPostProcessor; +import com.ysj.tinySpring.beans.factory.AbstractBeanFactory; + +/** + * ApplicationContext 的抽象实现 + * + */ +public abstract class AbstractApplicationContext implements ApplicationContext { + + protected AbstractBeanFactory beanFactory; + + public AbstractApplicationContext(AbstractBeanFactory beanFactory) { + this.beanFactory = beanFactory; + } + + /** + * 用于实现 BeanFactory 的刷新,也就是告诉 BeanFactory 该使用哪个资源(Resource)加载bean的定义 + * (BeanDefinition),并实例化,初始化bean + * @throws Exception + */ + public void refresh() throws Exception { + // 加载出bean的定义并保存到beanFactory中 + loadBeanDefinitions(beanFactory); + // 从 BeanFactory 中的bean的定义找实现 BeanPostProcessor接口的类(例如:AspectJAwareAdvisorAutoProxyCreator.java) + // 注册到 AbstractBeanFactory 维护的 BeanPostProcessor 列表中去(用于在bean实例化后对其进行一些其他处理, + // 可以看看getBean方法()中的initializeBean()的调用)。 + // 后面调用getBean方法通过AspectJAwareAdvisorAutoProxyCreator#postProcessAfterInitialization()方法中调用了 + // getBeansForType方法保证了 PointcutAdvisor 的实例化顺序优于普通 Bean。 + registerBeanPostProcessors(beanFactory); + // 默认以单例的方式实例化所有 Bean + onRefresh(); + } + + /** + * 由子类决定从哪种形式的Resource中加载出bean的定义,并保存到beanFactory中 + * @param beanFactory + * @throws Exception + */ + protected abstract void loadBeanDefinitions(AbstractBeanFactory beanFactory) throws Exception; + + /** + * 可用于实例化AspectJAwareAdvisorAutoProxyCreator + * @param beanFactory + * @throws Exception + */ + protected void registerBeanPostProcessors(AbstractBeanFactory beanFactory) throws Exception { + List beanPostProcessors = beanFactory.getBeansForType(BeanPostProcessor.class); + for (Object beanPostProcessor : beanPostProcessors) { + beanFactory.addBeanPostProcessor((BeanPostProcessor) beanPostProcessor); + } + } + + // 实现支持singleton(单例)类型的bean + protected void onRefresh() throws Exception{ + beanFactory.preInstantiateSingletons(); + } + + // 从beanFactory中获取bean + @Override + public Object getBean(String name) throws Exception { + return beanFactory.getBean(name); + } + +} diff --git a/src+/main/java/com/ysj/tinySpring/context/ApplicationContext.java b/src+/main/java/com/ysj/tinySpring/context/ApplicationContext.java new file mode 100644 index 0000000..3ff685a --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/context/ApplicationContext.java @@ -0,0 +1,16 @@ +package com.ysj.tinySpring.context; + +import com.ysj.tinySpring.beans.factory.BeanFactory; + +/** + * 以 ApplicationContext 接口为核心发散出的几个类,主要是对前面 Resouce 、 BeanFactory、BeanDefinition + * 进行了功能的封装,解决 根据地址获取资源通过 IoC 容器注册bean定义并实例化bean的问题。 + * + * 通常,要实现一个 IoC 容器时,需要先通过 ResourceLoader 获取一个 Resource,其中包括了容器的配置、Bean + * 的定义信息。接着,使用 BeanDefinitionReader接口暴露的方法读取并注册该 Resource 中的 BeanDefinition 信息。最后, + * 把 BeanDefinition 保存在 BeanFactory 中,容器配置完毕可以使用。 + * + */ +public interface ApplicationContext extends BeanFactory{ + +} diff --git a/src+/main/java/com/ysj/tinySpring/context/ClassPathXmlApplicationContext.java b/src+/main/java/com/ysj/tinySpring/context/ClassPathXmlApplicationContext.java new file mode 100644 index 0000000..b1050b6 --- /dev/null +++ b/src+/main/java/com/ysj/tinySpring/context/ClassPathXmlApplicationContext.java @@ -0,0 +1,53 @@ +package com.ysj.tinySpring.context; + +import java.util.Map; + +import com.ysj.tinySpring.beans.BeanDefinition; +import com.ysj.tinySpring.beans.factory.AbstractBeanFactory; +import com.ysj.tinySpring.beans.factory.AutowireCapableBeanFactory; +import com.ysj.tinySpring.beans.io.ResourceLoader; +import com.ysj.tinySpring.beans.xml.XmlBeanDefinitionReader; + +/** + * 从类路径加载资源的具体实现类 + * + */ +public class ClassPathXmlApplicationContext extends AbstractApplicationContext { + + private String configLocation; + + public ClassPathXmlApplicationContext(String configLocation) throws Exception { + // 默认是自动装载bean + this(configLocation, new AutowireCapableBeanFactory()); + } + + public ClassPathXmlApplicationContext(String configLocation, AbstractBeanFactory beanFactory) throws Exception { + super(beanFactory); + this.configLocation = configLocation; + refresh(); + } + + /** + * 加载出bean的定义,并保存到beanFactory中 + * + * 注意:在 tiny-spring 的实现中,先用 BeanDefinitionReader 读取 BeanDefiniton 后,保存在内置的 + * registry (键值对为 String - BeanDefinition 的哈希表,通过 getRigistry() 获取)中,然后由 + * ApplicationContext 把 BeanDefinitionReader 中 registry 的键值对一个个赋值给 BeanFactory + * 中保存的 beanDefinitionMap。而在 Spring 的实现中,BeanDefinitionReader 直接操作 BeanDefinition + * ,它的 getRegistry() 获取的不是内置的 registry,而是 BeanFactory 的实例。如何实现呢? + * 以 DefaultListableBeanFactory 为例,它实现了一个 BeanDefinitonRigistry 接口,该接口 + * 把 BeanDefinition 的 注册 、获取 等方法都暴露了出来,这样,BeanDefinitionReader 可以直接通过这些 + * 方法把 BeanDefiniton 直接加载到 BeanFactory 中去。 + */ + @Override + protected void loadBeanDefinitions(AbstractBeanFactory beanFactory) throws Exception { + XmlBeanDefinitionReader xmlBeanDefinitionReader = new XmlBeanDefinitionReader(new ResourceLoader()); + // 从类路径加载xml文件中bean的定义并注册到AbstractBeanDefinitionReader的registry中去 + xmlBeanDefinitionReader.loadBeanDefinitions(configLocation); + // 将加载出的bean定义从registry中注册到beanFactory中 + for (Map.Entry beanDefinitionEntry : xmlBeanDefinitionReader.getRegistry().entrySet()) { + beanFactory.registerBeanDefinition(beanDefinitionEntry.getKey(), beanDefinitionEntry.getValue()); + } + } + +} diff --git a/src+/test/java/com/ysj/BeanFactoryTest.java b/src+/test/java/com/ysj/BeanFactoryTest.java new file mode 100644 index 0000000..164ffd5 --- /dev/null +++ b/src+/test/java/com/ysj/BeanFactoryTest.java @@ -0,0 +1,54 @@ +package com.ysj; + +import java.util.Map; + +import org.junit.Test; + +import com.ysj.tinySpring.beans.BeanDefinition; +import com.ysj.tinySpring.beans.factory.AbstractBeanFactory; +import com.ysj.tinySpring.beans.factory.AutowireCapableBeanFactory; +import com.ysj.tinySpring.beans.io.ResourceLoader; +import com.ysj.tinySpring.beans.xml.XmlBeanDefinitionReader; + +/** + * @author yihua.huang@dianping.com + */ +public class BeanFactoryTest { + + @Test + public void testLazy() throws Exception { + // 1.读取配置 + XmlBeanDefinitionReader xmlBeanDefinitionReader = new XmlBeanDefinitionReader(new ResourceLoader()); + xmlBeanDefinitionReader.loadBeanDefinitions("tinyioc.xml"); + + // 2.初始化BeanFactory并注册bean + AbstractBeanFactory beanFactory = new AutowireCapableBeanFactory(); + for (Map.Entry beanDefinitionEntry : xmlBeanDefinitionReader.getRegistry().entrySet()) { + beanFactory.registerBeanDefinition(beanDefinitionEntry.getKey(), beanDefinitionEntry.getValue()); + } + + // 3.获取bean + HelloWorldService helloWorldService = (HelloWorldService) beanFactory.getBean("helloWorldService"); + helloWorldService.helloWorld(); + } + + @Test + public void testPreInstantiate() throws Exception { + // 1.读取配置 + XmlBeanDefinitionReader xmlBeanDefinitionReader = new XmlBeanDefinitionReader(new ResourceLoader()); + xmlBeanDefinitionReader.loadBeanDefinitions("tinyioc.xml"); + + // 2.初始化BeanFactory并注册bean + AbstractBeanFactory beanFactory = new AutowireCapableBeanFactory(); + for (Map.Entry beanDefinitionEntry : xmlBeanDefinitionReader.getRegistry().entrySet()) { + beanFactory.registerBeanDefinition(beanDefinitionEntry.getKey(), beanDefinitionEntry.getValue()); + } + + // 3.初始化bean + beanFactory.preInstantiateSingletons(); + + // 4.获取bean + HelloWorldService helloWorldService = (HelloWorldService) beanFactory.getBean("helloWorldService"); + helloWorldService.helloWorld(); + } +} diff --git a/src+/test/java/com/ysj/BeanInitializeLogger.java b/src+/test/java/com/ysj/BeanInitializeLogger.java new file mode 100644 index 0000000..88223b5 --- /dev/null +++ b/src+/test/java/com/ysj/BeanInitializeLogger.java @@ -0,0 +1,21 @@ +package com.ysj; + +import com.ysj.tinySpring.beans.BeanPostProcessor; + +/** + * 实例化bean后,初始化时会调用该方法 + * @author yihua.huang@dianping.com + */ +public class BeanInitializeLogger implements BeanPostProcessor { + @Override + public Object postProcessBeforeInitialization(Object bean, String beanName) throws Exception { + System.out.println("Initialize bean " + beanName + " start!"); + return bean; + } + + @Override + public Object postProcessAfterInitialization(Object bean, String beanName) throws Exception { + System.out.println("Initialize bean " + beanName + " end!"); + return bean; + } +} diff --git a/src+/test/java/com/ysj/HelloWorldService.java b/src+/test/java/com/ysj/HelloWorldService.java new file mode 100644 index 0000000..d4a83a2 --- /dev/null +++ b/src+/test/java/com/ysj/HelloWorldService.java @@ -0,0 +1,9 @@ +package com.ysj; + +/** + * @author yihua.huang@dianping.com + */ +public interface HelloWorldService { + + void helloWorld(); +} diff --git a/src+/test/java/com/ysj/HelloWorldServiceImpl.java b/src+/test/java/com/ysj/HelloWorldServiceImpl.java new file mode 100644 index 0000000..0e3dbc4 --- /dev/null +++ b/src+/test/java/com/ysj/HelloWorldServiceImpl.java @@ -0,0 +1,25 @@ +package com.ysj; + +/** + * @author yihua.huang@dianping.com + */ +public class HelloWorldServiceImpl implements HelloWorldService { + + private String text; + + private OutputService outputService; + + @Override + public void helloWorld() { + outputService.output(text); + } + + public void setText(String text) { + this.text = text; + } + + public void setOutputService(OutputService outputService) { + this.outputService = outputService; + } + +} diff --git a/src+/test/java/com/ysj/OutputService.java b/src+/test/java/com/ysj/OutputService.java new file mode 100644 index 0000000..3a53880 --- /dev/null +++ b/src+/test/java/com/ysj/OutputService.java @@ -0,0 +1,8 @@ +package com.ysj; + +/** + * @author yihua.huang@dianping.com + */ +public interface OutputService { + void output(String text); +} diff --git a/src+/test/java/com/ysj/OutputServiceImpl.java b/src+/test/java/com/ysj/OutputServiceImpl.java new file mode 100644 index 0000000..e96dae6 --- /dev/null +++ b/src+/test/java/com/ysj/OutputServiceImpl.java @@ -0,0 +1,13 @@ +package com.ysj; + +/** + * @author yihua.huang@dianping.com + */ +public class OutputServiceImpl implements OutputService { + + @Override + public void output(String text) { + System.out.println(text); + } + +} diff --git a/src+/test/java/com/ysj/aop/AspectJExpressionPointcutTest.java b/src+/test/java/com/ysj/aop/AspectJExpressionPointcutTest.java new file mode 100644 index 0000000..04b14f2 --- /dev/null +++ b/src+/test/java/com/ysj/aop/AspectJExpressionPointcutTest.java @@ -0,0 +1,33 @@ +package com.ysj.aop; + +import org.junit.Assert; +import org.junit.Test; + +import com.ysj.HelloWorldService; +import com.ysj.HelloWorldServiceImpl; +import com.ysj.tinySpring.aop.AspectJExpressionPointcut; + +/** + * @author yihua.huang@dianping.com + */ +public class AspectJExpressionPointcutTest { + + @Test + public void testClassFilter() throws Exception { + String expression = "execution(* us.codecraft.tinyioc.*.*(..))"; + AspectJExpressionPointcut aspectJExpressionPointcut = new AspectJExpressionPointcut(); + aspectJExpressionPointcut.setExpression(expression); + boolean matches = aspectJExpressionPointcut.getClassFilter().matches(HelloWorldService.class); + Assert.assertTrue(matches); + } + + @Test + public void testMethodInterceptor() throws Exception { + String expression = "execution(* com.ysj.*.*(..))"; + AspectJExpressionPointcut aspectJExpressionPointcut = new AspectJExpressionPointcut(); + aspectJExpressionPointcut.setExpression(expression); + boolean matches = aspectJExpressionPointcut.getMethodMatcher() + .matches(HelloWorldServiceImpl.class.getDeclaredMethod("helloWorld"), HelloWorldServiceImpl.class); + Assert.assertTrue(matches); + } +} diff --git a/src+/test/java/com/ysj/aop/Cglib2AopProxyTest.java b/src+/test/java/com/ysj/aop/Cglib2AopProxyTest.java new file mode 100644 index 0000000..1c9a3d7 --- /dev/null +++ b/src+/test/java/com/ysj/aop/Cglib2AopProxyTest.java @@ -0,0 +1,45 @@ +package com.ysj.aop; + +import org.junit.Test; + +import com.ysj.HelloWorldService; +import com.ysj.HelloWorldServiceImpl; +import com.ysj.tinySpring.aop.AdvisedSupport; +import com.ysj.tinySpring.aop.Cglib2AopProxy; +import com.ysj.tinySpring.aop.TargetSource; +import com.ysj.tinySpring.context.ApplicationContext; +import com.ysj.tinySpring.context.ClassPathXmlApplicationContext; + +/** + * @author yihua.huang@dianping.com + */ +public class Cglib2AopProxyTest { + + @Test + public void testInterceptor() throws Exception { + // --------- helloWorldService without AOP + ApplicationContext applicationContext = new ClassPathXmlApplicationContext("tinyioc.xml"); + HelloWorldService helloWorldService = (HelloWorldService) applicationContext.getBean("helloWorldService"); + helloWorldService.helloWorld(); + + // --------- helloWorldService with AOP + // 1. 设置被代理对象(Joinpoint) + AdvisedSupport advisedSupport = new AdvisedSupport(); + TargetSource targetSource = new TargetSource(helloWorldService, HelloWorldServiceImpl.class, + HelloWorldService.class); + advisedSupport.setTargetSource(targetSource); + + // 2. 设置拦截器(Advice) + TimerInterceptor timerInterceptor = new TimerInterceptor(); + advisedSupport.setMethodInterceptor(timerInterceptor); + + // 补:没有设置MethodMatcher,所以拦截该类的所有方法 + // 3. 创建代理(Proxy) + Cglib2AopProxy cglib2AopProxy = new Cglib2AopProxy(advisedSupport); + HelloWorldService helloWorldServiceProxy = (HelloWorldService) cglib2AopProxy.getProxy(); + + // 4. 基于AOP的调用 + helloWorldServiceProxy.helloWorld(); + + } +} diff --git a/src+/test/java/com/ysj/aop/JdkDynamicAopProxyTest.java b/src+/test/java/com/ysj/aop/JdkDynamicAopProxyTest.java new file mode 100644 index 0000000..3affd29 --- /dev/null +++ b/src+/test/java/com/ysj/aop/JdkDynamicAopProxyTest.java @@ -0,0 +1,46 @@ +package com.ysj.aop; + +import org.junit.Test; + +import com.ysj.HelloWorldService; +import com.ysj.HelloWorldServiceImpl; +import com.ysj.tinySpring.aop.AdvisedSupport; +import com.ysj.tinySpring.aop.JdkDynamicAopProxy; +import com.ysj.tinySpring.aop.TargetSource; +import com.ysj.tinySpring.context.ApplicationContext; +import com.ysj.tinySpring.context.ClassPathXmlApplicationContext; + +/** + * @author yihua.huang@dianping.com + */ +public class JdkDynamicAopProxyTest { + + @Test + public void testInterceptor() throws Exception { + // --------- helloWorldService without AOP + ApplicationContext applicationContext = new ClassPathXmlApplicationContext("tinyioc.xml"); + HelloWorldService helloWorldService = (HelloWorldService) applicationContext.getBean("helloWorldService"); + helloWorldService.helloWorld(); + + // --------- helloWorldService with AOP + // 1. 设置被代理对象(Joinpoint) + AdvisedSupport advisedSupport = new AdvisedSupport(); + TargetSource targetSource = new TargetSource(helloWorldService, HelloWorldServiceImpl.class, + HelloWorldService.class); + advisedSupport.setTargetSource(targetSource); + + // 2. 设置拦截器(Advice) + TimerInterceptor timerInterceptor = new TimerInterceptor(); + advisedSupport.setMethodInterceptor(timerInterceptor); + + // 补:由于用户未设置MethodMatcher,所以通过代理还是调用的原方法(JdkDynamicAopProxy中的invoke方法最后 + // 返回method.invoke(...)而不是methodInterceptor.invoke(...) ) + // 3. 创建代理(Proxy) + JdkDynamicAopProxy jdkDynamicAopProxy = new JdkDynamicAopProxy(advisedSupport); + HelloWorldService helloWorldServiceProxy = (HelloWorldService) jdkDynamicAopProxy.getProxy(); + + // 4. 基于AOP的调用 + helloWorldServiceProxy.helloWorld(); + + } +} diff --git a/src+/test/java/com/ysj/aop/TimerInterceptor.java b/src+/test/java/com/ysj/aop/TimerInterceptor.java new file mode 100644 index 0000000..659e7fd --- /dev/null +++ b/src+/test/java/com/ysj/aop/TimerInterceptor.java @@ -0,0 +1,21 @@ +package com.ysj.aop; + +import org.aopalliance.intercept.MethodInterceptor; +import org.aopalliance.intercept.MethodInvocation; + +/** + * @author yihua.huang@dianping.com + */ +public class TimerInterceptor implements MethodInterceptor { + + @Override + public Object invoke(MethodInvocation invocation) throws Throwable { + long time = System.nanoTime(); + System.out.println("Invocation of Method " + invocation.getMethod().getName() + " start!"); + Object proceed = invocation.proceed(); + System.out.println("Invocation of Method " + invocation.getMethod().getName() + " end! takes " + + (System.nanoTime() - time) + " nanoseconds."); + return proceed; + } + +} diff --git a/src+/test/java/com/ysj/beans/io/ResourceLoaderTest.java b/src+/test/java/com/ysj/beans/io/ResourceLoaderTest.java new file mode 100644 index 0000000..fe8475d --- /dev/null +++ b/src+/test/java/com/ysj/beans/io/ResourceLoaderTest.java @@ -0,0 +1,24 @@ +package com.ysj.beans.io; + +import java.io.IOException; +import java.io.InputStream; + +import org.junit.Assert; +import org.junit.Test; + +import com.ysj.tinySpring.beans.io.Resource; +import com.ysj.tinySpring.beans.io.ResourceLoader; + +/** + * @author yihua.huang@dianping.com + */ +public class ResourceLoaderTest { + + @Test + public void test() throws IOException { + ResourceLoader resourceLoader = new ResourceLoader(); + Resource resource = resourceLoader.getResource("tinyioc.xml"); + InputStream inputStream = resource.getInputStream(); + Assert.assertNotNull(inputStream); + } +} diff --git a/src+/test/java/com/ysj/beans/xml/XmlBeanDefinitionReaderTest.java b/src+/test/java/com/ysj/beans/xml/XmlBeanDefinitionReaderTest.java new file mode 100644 index 0000000..0dfc8b5 --- /dev/null +++ b/src+/test/java/com/ysj/beans/xml/XmlBeanDefinitionReaderTest.java @@ -0,0 +1,24 @@ +package com.ysj.beans.xml; + +import java.util.Map; + +import org.junit.Assert; +import org.junit.Test; + +import com.ysj.tinySpring.beans.BeanDefinition; +import com.ysj.tinySpring.beans.io.ResourceLoader; +import com.ysj.tinySpring.beans.xml.XmlBeanDefinitionReader; + +/** + * @author yihua.huang@dianping.com + */ +public class XmlBeanDefinitionReaderTest { + + @Test + public void test() throws Exception { + XmlBeanDefinitionReader xmlBeanDefinitionReader = new XmlBeanDefinitionReader(new ResourceLoader()); + xmlBeanDefinitionReader.loadBeanDefinitions("tinyioc.xml"); + Map registry = xmlBeanDefinitionReader.getRegistry(); + Assert.assertTrue(registry.size() > 0); + } +} diff --git a/src+/test/java/com/ysj/context/ApplicationContextTest.java b/src+/test/java/com/ysj/context/ApplicationContextTest.java new file mode 100644 index 0000000..fbca74f --- /dev/null +++ b/src+/test/java/com/ysj/context/ApplicationContextTest.java @@ -0,0 +1,32 @@ +package com.ysj.context; + +import org.junit.Assert; +import org.junit.Test; + +import com.ysj.HelloWorldService; +import com.ysj.OutputService; +import com.ysj.tinySpring.context.ApplicationContext; +import com.ysj.tinySpring.context.ClassPathXmlApplicationContext; + +/** + * @author yihua.huang@dianping.com + */ +public class ApplicationContextTest { + + @Test + public void test() throws Exception { + ApplicationContext applicationContext = new ClassPathXmlApplicationContext("tinyioc.xml"); + // OutputService outputService = (OutputService) applicationContext.getBean("outputService"); + HelloWorldService helloWorldService = (HelloWorldService) applicationContext.getBean("helloWorldService"); + + // Assert.assertNotNull(helloWorldService); + helloWorldService.helloWorld(); + } + + @Test + public void testPostBeanProcessor() throws Exception { + ApplicationContext applicationContext = new ClassPathXmlApplicationContext("tinyioc-postbeanprocessor.xml"); + HelloWorldService helloWorldService = (HelloWorldService) applicationContext.getBean("helloWorldService"); + helloWorldService.helloWorld(); + } +} diff --git a/src+/test/resources/tinyioc-postbeanprocessor.xml b/src+/test/resources/tinyioc-postbeanprocessor.xml new file mode 100644 index 0000000..34696e1 --- /dev/null +++ b/src+/test/resources/tinyioc-postbeanprocessor.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src+/test/resources/tinyioc.xml b/src+/test/resources/tinyioc.xml new file mode 100644 index 0000000..b7c9528 --- /dev/null +++ b/src+/test/resources/tinyioc.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\344\270\244\347\247\215\345\212\250\346\200\201\344\273\243\347\220\206.png" "b/src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\344\270\244\347\247\215\345\212\250\346\200\201\344\273\243\347\220\206.png" new file mode 100644 index 0000000000000000000000000000000000000000..a9e1af2add352033f933bb9584c686da1314f489 GIT binary patch literal 93868 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

DT4Q0c0_ry}_d3B{oWW{Lqv6-1cP!mLJ>S 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

c+iXERv>|zjD1+u9y zhnZAB69+BYo#d1hMVn;(dVgdRkOxq$Z5j4TXap?F5KO0G|7wv@I8>uiWSlNj2TP(6 zG_rOO(S*W)7MrOWip?FEabc6l%iXXOL_k%!{3!MMbj{x;ei5CtEbM!jx??9`KdEtG zrn(`d7!9e7O|^~|Fe-PKT51J+^er>HHebhO)_tYi_LqO=EcAcTyNG-ZK4B9KU5ucu zfdR*8gt~gkPIsb6dt|UFa8IUl?s;j=Fxh2Bvm#*({aL0^Zn3+ zZ1qVuMGg1Od;z}gnerquqwL?0$!EKVI935q_x zV}wrdRNM!~m6}Z{CLV9~8u?Q5sja^)G+~xD64c+oF9^>4E3gcvC*?RKvQmA#JLsMa z*LV7I&eIc?>gG!lIhrNSJpS={_qN!pGb~&F_T1?{%u!}6S`Mbqcsc#}9H4)ELe;fi&BQk7`xZudD_`mX-oBiKi+vT`&eO9VCn2E$ z1)%|GBdfI8m+PwPz=SA7bKOG9Pp;z^4A1#|U`&Vy%%jTTtYd9C(nI^QAQ`;*qf$Ho0i{@o#hB6(7f2P7?It_Kv zjbW;jjOH=a6Nzd5O~hVl$;`+&@j*LgXlc`*t$!N{BJP7;K9P<{JAY3*7Jl`qw^1*S#Z1iAtv?~R;V-Kw4lr< z&;eWbxb%MYf{5&kRBg4p^VSpav7A4sx>HPrhQKlxdwcWGc-C>R+~E_f2tqNp%U6DJ z4yWbS(-fvqC_br3xgFGuGbDAM1~WsKa8oigM|MkNw*ppq)KfyV9ce}FgnqmGr_++m zOgRH!3U7hjj-ni9cforEpH4!GvY~B)9^neUn~yhA5An9S{O`>9R)P*a3V~wz^}=$+ zpW+%)+ZPK(&*7HDl-(}=wB_%VWz5MioJtXgOg;`UQgE(Ll+qq?|5KOp&U-SvQc5=y zaZS7QkGf<`77Vk=-WozQ_~;$k{F!chFE0kQ{IaqrW^~P32@HO%HpkMcC5oB942uUi zo}d-}uJDNJ{CN{h9;Tx9(vjZ~!NBpi$8dSDf((}!l_d}p%$7R@k*YZT_`i*L|E(1t zKEywx@}Jq?>r|Fv3;=&uIfdLKM7r1h`)Z}VFp5AiF&BZf`dD4I&^+GsA8QqX6UG1k z)~W?eS;xd)zplHYpz{Jjtv>;l9k#n-sqn7tf83fl_|?t1kf5N*qqHvK43{sbAy%F( z3n7 zaj3ytR#)K8J3l5e>L{iN^ckJAEv9Kn=VtCcs1OX+K$FiXyiA@6Ep~ht>F96P!sXWa z)mxSCtL7)8v#9#_7tR?v`0)hPj_z($?ephtxQ2(i^-OM;=W2K0y%M&)s&i-es%y8s zl$xy9J+D;9GL1N)L3JGk1y2^%^HwLY=7P^wR!;7vKpzwVGwAh!?2Y~vBi#w^*XhyP zT0;{Pc~CtYeS3GW&|=_*Szk8#TaH%0A*G+6A5t6*0R^Nj%SjgkmK8j`jS!qO4i0t% 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 literal 0 HcmV?d00001 diff --git "a/src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\344\275\277\347\224\250jdk\345\212\250\346\200\201\344\273\243\347\220\206.png" "b/src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\344\275\277\347\224\250jdk\345\212\250\346\200\201\344\273\243\347\220\206.png" new file mode 100644 index 0000000000000000000000000000000000000000..f09cb529c1079a458e05f1a782eca489ef149f40 GIT binary patch literal 55492 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 literal 0 HcmV?d00001 diff --git "a/src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\345\210\207\347\202\271\351\200\232\347\237\245\345\231\250\347\233\270\345\205\263\346\216\245\345\217\243.png" "b/src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\345\210\207\347\202\271\351\200\232\347\237\245\345\231\250\347\233\270\345\205\263\346\216\245\345\217\243.png" new file mode 100644 index 0000000000000000000000000000000000000000..0ccc2405dff7c21f1bbc074c38dd80bda6d5a57b GIT binary patch literal 41278 zcmb?@1z1#FyY?Uo79x_0fP$oigh(SIT@n&f0@5YT(4t5TA>AO|-Hl2K2-3n(GBncN z|C#|_eZTiR@tHlNQ0ceCsj<0>Kg!eJTfmpm#tZXjvCA zz+Z5RIwHV-XjXC}PawG+x97kw=k*1o1R#)tfGY=D7r^hAUW=+&K_J(@ApfB?o2S2m zKtA?}Jrz)}*I2B%WRE9wbi7>THGC14p0%cG`&_wNmb1aje*E%fuZwi~tqES2&wC}F zJ12boyey88turSr?vWm=n`mG%sGoYO2Ve;&KW-#1WB&SryPgC6>KffS| zt7o5opf%k*`<##N%X;?tB_@&n$>*!d*%QZa?+Bi+{{1KSZyh_!L3diNf8ue(J{z6r z9b1RkP5h7`^-BWM-koGb`pf6e9{%=2)2?#A5Lcw?$#;AKH-hCeJL$&_&*uB!qG3#c zp5im34xx*d;!a1R2&bQ)J?4w9*x&eTCQok7O!{8t3UtPCkGT=gZ-h`&P*8Awk0yh5 zx*#_JwLO0;PLj@Cw>xPKGuXaGcE7(8MZ`pCNYkp|U!M%wIe25S#rWsgxQroP1?`qC zXzI3ux(~G}G;Ye|VM>+wSXAwkIW?qi>@jEk^CkpC(@c6JBvRc(cymHnJQq{M{apM+a)!_;` zad9TrnjgNIZQr8GK8EGI=pkP2z?o7ttAic=AkORcJRlWTUtTsWs)_4e7_a?7-<*Q~ zY=&{WtI5k?#MU7*XH;@x-LsPd>=aTB#+fH4$!U|^HU#VT_+E|Aa) z>XJYm^Hx?%pJor*EjfK>%)a%wGv&0Z?>qL>iny*FALOJo|mz{-8uMV(_MuG1pBL;6{4*)X^27m4`ki}oK)w5 ziaynVC-(TzEU6V3_9Yv#8oBCVz96=J?CnQN`1G4Y4@-DqZIz}v7x^>ksmrg)j9%B32e-K9pYQE8OBGYk@km8& z)ylax;`?QX^<|biumYS>qdqxg%^!kc@2==t(-#ddHy+atGznL;#A#qh8Q~*rxA}Lx zq~fgni-Y5wz`r$j@=og~a ztRr(ZpVo$3)v~#?U&*PR`7Q*qL%ud-JO1h}iS&JU6w>4d|5oY1^^}kp+37xQ)=a`j z;x!K2I1A$;Z8BGHKdC#Y5SbL*ZiE$@sKQIj9aR0U{}#X^zsln-Lk|=>{kcJ2+)CnN zbGjM~>`C*MMbixFx>@}jO;uJ;cf;VziTqnl_c!m>dCCs#I}VxTQEzgUGqJZ>7+&bD zXmc)RCVx>D8)uZYjj_ty{0;&chXLSFFhT>uR;Hes458`H@;nf6IvVGiQ%710p7+`@ zong-=Jmm7ePiA~#Ta8r_r$d+s_bn<{A$rn<+U^U*!KEWPl` z*uT-h#bq}qU9*2JpVlm^jKL^l0b127SGJzK6QT129BZM;64NnnCocQUdaVMLYXQ7M z$G1w}VRXDmf@7?at?s^ENJe4x3X!EHjxn?BB?8td!wXXJQn;g03CZ(Z>`5$Sq`~5O z7o?J!_p#+BqHUYIc}E<)4vb)0OG8O%BU>*n@bs$ol8ApJm>Me;>3UnU-)qoZ*ykBi z%J*G6V%IzmlyWI}$=MZ6B7Fw7d)1|DLx-*6s&tER>@E77T>-*3i zIe9nZ?`+XWwPO@8jfpsuk7>i*JZ<2{bE==Z+b4MO9({mK;FJTF&bZQZBDiaS^4>VS}A}qwQCP zk&fU$B*sg-ix)ayUffhsTMXB0Y(q^#v z%S$PJgx{>#XVvm8Lz4$;*1~hWMq^-{}VcnvcieU9%)9*TNh}HA& zRIirIK=AD>6)_CH@O<=#U~S3TlANh;<3{V{STHi?+^Qe&YhyAO?U`X9DBy%Cd9gHCXjJ(s4hzHm+umy057H?ri6Q9Q92N>vDvNDO zh6@;+j_miiRFsuP^*drR82j!$dZc6$-JX`3Dkmi5L9=eDqM}0H84?!e<6z_alV~7g zu*^KZJAlB%}(O{`~BX&yR}prM#GG+!g&)UE}*JtTN8781qR5TGkWCu_y!zk*#S)|b8_PM7}i z2YIaZ)GtSyeeHq-#6rDkY}K=6m$y%Uebs;86}vr}Mx^h*$QLH`MT1mED*7Se;_?#d z)ZaCBPAo{Kvvn|yo)_CRCPOf^84&1bJ^(9 z0UG$M0U2&;Ez|tbQD^jAl^=I#dC0Hke!lN;QvW_GK35)_*jKm*hyecX5xcP*V>zg! zVy+tPd;keIm3Bfx!i4#xZe&-I2#mcwSH0>fNwf0R=(S6@RNw2456!ze{Yki=#{AqV z>g2m0)^p21LwXBghK>dNL?pmitSH=VjG=W$+Wo&o$P*lOl%zOAO$UkA*9$aLsltI>|xYIll+M}}@vR;|2ACx`3KPtU~mLotf>wz|VDIC&>V z#J<88yF{gI<+~G3m@g!>waFP?6pL=OLG6%10ZKNfX6;Ye2;H0Mj>BudN7gs}$WVVK zTq&d8wsmomWvDh;Y~N6%Sd`F3U3bF;E8zKjxq5J_RA?dISfJu|!a!boTdCizM+8%* z1^Q1pd6?BhI7e4}GDV8)sPwyYlLpB?av(BmC&q{=rSH#Jb11$ z+Qruk|7;iBXH!V#xc_)W!z_SeV!e4}K&;lW-OhC&S3Qg9!t9|_SoR9QE1D}|Gi z_w|d(S3RWi`+S3urn@v)uDKUF*y&F(BNVwmZW&A^^}LA_MjphH9oDlYud1S|6uua4 zDwrfg%WP9!%E!?JW&b?HWy9~V|2VG(xjftfG4^B=_rVWqB6VHx6R@PY9_=VH0$VBHpXPwx3M zr=G6F?OH73-xsUm+sOz+%Y+fgR0S|jhR{+)_E>SIh{wq@W-XLBiv~CCG6$!@4zkQU zvSqjHlbnT)zJB^Lm!xa_?iE@0Md{e>iW~AwSsmE7j)GdY9jf`AR~pMUUdN|B-QDd% zq+69i0?Amkv%94k(-zZ83vHu+nbtXQDvk*V3RS?-1H4RQ_NTV5Z8IN)db5pJ;E*3H zAL~DjwN?GKh;E}|JE!IQ}s271pT7f@J-DPT$8>yZ#X-orz5zx7q(XH28_*MHO?QGB(@g4 zb`F@~HbLJ?s}b2QS?tj-{ny75Jm7}QbdLAW0zpUMrMfjr_C3d>=rLHu#9_0nHxg2t zF4u5uaRgxma_51s2j6;U;v2?S(+ z`a6Nm>xRc-&Ck^o7_Y8Hd@`OLS&g3kVprNlUG!O~RoCB&x2#9CmT&(1ob9~*LTshY zD9zC&tlE`@zKp4*I@s?ZqLlKLti9z3+rA%!D^erTDJ`<6*Lp#uq=J57m%HO+{EmN) z?&+lKqSOJtAc`}>4S_f&8zWd@HvFa$oFPf51u&ysKJs%xY9?E=I5cjzxmWJbGF zUwAg}A(wz_+sz+_^=vdVX8>Elbv5Y+eGQkL*Wdk)jnu}jSj0a|q%))#BIkL;pu zmRD3#8*_AQ4*SCwHoxcu?(UuML(XZpGvcw9&#pcz zM_x{NP?JjD-&`wx1goKl_6VER1UegUKDAVl!CnKMRF<>{hZzo#H|ZM5>h71BE*bvg zCq;VSxUNzn`UXPV`LuZB-x+{*-!NN2S?P`94t;j>=k=#WEZalywI>+XeKu9xh2$?hP$G zt+0tMWgFI(q`1LE(^k;C`)E}4@i*1tWW^l#_iCm(r3pDpk|gSCA=4p^q>VNU)A;#9 z#lpD#2^UiPWNe$7y6_e&-vxFu(S)ihOfMUr-n2T=sltN*cjLS&fw{CpDH0*y^?4ho zjXoozfg|Ap`eP~orC_@m*SkxjZAXj1fkUPV2xWcOabRfTZg*w?DpchKhlYku2&s>` z9@jh=R>KHCi)4R5*}};KxT##wezbLFCn~+qRt&*Y+6-&jG}g|UIN2lN56Y8O*vJp9hUG`c}KEYY)XqW-1of zlQeL3*-M6(JtdTU%1dQzRPxCB)9$<6D2Tig-W{^dUz)iLtb5|YsdcAovl{vFF*BZW z_pUXWsaN)1O=G>GRd)YZsEY*643wMDbvydY{yQw5wA)!yza0?|(yt#)FI}IE**RG4 zwF$ynUz=((gqNE3;nbgmXfbL}Pwa7nu)T6TzM>Dmlk~>+`nIQ0uZ3fcOY&f_k%jL4 zJ(gEU&rLa`tT7H}@iT6ZP$Xi0s&`jiq{xG#GeFuHUXXnA5b-keMsRoO^Y9XzY|ni@ z%B6!fb~7I?s(CV}Ut+S&W6cw59g~u}(UWWZ2Njx=gC>}+m69e4l_QrDrAL;`A06-q z&Q#3~cXTntZYfI#wNQPP***v%Q;{u8qz~=Y~R!b0|WbP-1YhlP^cbk)`RqGPr(+aWRRK+&K z^^(4?E+|7v%bs7j*fA+#zBXCN)j4E2{%&ojlTPyptw$t|2`jWSnX-OB?v)ne$}E!o4w@urWuB=VyX{ z2hI~C@;n{HPK9IUq!x6(zsL|%5-J_rLU6b^>Y^5+OHzi|ayS$%O7laSMz5lZgK?Po z+)q9k@3r-$=00WV*nzN=!5FS(E7>J(gLImryHhSRFWM{Bq(^^}utK@8oT2U`E>xW{ zOs#^#zWAx}lx2|%T&nH)+2IypYJ_=jmt8b%HcQxax2VO{MwWVx_d^L7^BithOTn`i zie+x&lUd0~gPcnJa}erVsHC(Aeqg1e$=L8&xL3z(P=d&ag8|1pSI2X zM>PG?3%lw?#upX3Od!g8YrvYh=QvQv)IZOk_%w0>8vROb#Q#{Y!tYAmQGxV+gX}7^ zCkT;{`IaVHNC)|!$x0zD$0zJU_qZ8rVLa23WCl&|q}YtRr*BPg3^1wUWmNG@LeK7g z&{2O8BxA9WE9PF6w2RZ zXVXXVIB;X_ORjN&3c&oafjd^K^@*p`l6dK=ZDqp})pU zDc5rR4w)w#0N5%#&d{_QZC;zvfp#Xoi9+!}kT<$O8H#*P{JUljHTcK9R@L0#gA%T1 z$lR{kidOzqnXZ^ zPz!YXV>XuSu=MhBB2>NM)JrNyQh;fqa! zj;QZne(%C;8gxabF?LvZn&w7?Ht-kWu3n0{mvJ&QcwfcH$$@is0nB9>fQ%NW z&ih*`eej^9#o`4k;gZeOJ|)dAiy$V`!H zG#}rZndrV;X}_8%=wQ{8*1J-}XWdLl@l+$vPj*5_H|t=rY|KX|DK{??ySIQmFmfX%S`-UyeH7Yb-0 z5xAtygB(_uorsUpxYLn(`ZizJh?vdbBTweHfb_xw*&+*s@O)oZ_=6W$iS-xN4ZgZx zxbluRJYz7hsp90o|1#=czGB!i@4bOYIL<6qXegI9zghDB>dhzXGo6IH@vcWIw=q>7 zX*XOPs!A>(yWh|urIf~U7pQc`Y=Ixcr16G$ok`w<)#iE?qAR#aHG*hDA$4qqR^ zm};-@@*nNIJv!R1Q|v^w4H zwQ=2tkKwJ3yfh_NnJ#t8j&oe%6qk^YpXZ2+kIxH%s^1Q7`^qr`gTX>sj&+38sn_X` zMjag-DxdqNl&P1__fBw6I#>{x2M=r5{k10mRMDDtZy@bTM2Yc$-1_vlMxBZ)gp7Di z!k?SG$groE!*gGhh&TM8S=ITXqybG)PPLlpAYX!kl54c)J>O{Fl6`}VelJ)9sd8fF zavlk_GUxWF3Nx_#ndotL(vo4SG{0Xx*j*P_5g!rG%MN4fC~Swa|A7q!w`+Bya2WiPN>Icj=>&@ zy7mOj@LJLJ(rS@)_Bs)=7Y)0Zb+_-%Z-mKai3E^NR5ixTJQ6MX6k;R8f5=vIw6`F> zyD`^8u8U|LlkfQY6-RfI<;5z=>?)%9zOIWxG}+j6wF9Rq*?gg`^A}I-v~W!q6`o86 zc>d99fa~}7Sj10H=jcjs|L)xc;h4tNXtPSOe^CNAi&~^@uh#(ridDU{6w{w766Tjw zt63wdX%;K;iCEuP~ocx^v9Jfa^IjYGt{0Z9_ubRoIP6!jK%}aZ6I^1xX}#%#)OI3 z!R9}BJfLRf_oKhUYG!CrkYNcH@9@1zCEjVxJAEL_%3~+u3#bRVaRSp!_A&-(ih$eL z&7nUv2@{DXksTk}ZS9n`0Js+CPsX1+ImokySebWleI_aC`=Iv#r^>A0D|K_s>!ISqUrVmM>h|4fs86j3eM?K~P54Fot4V zM7|fTB_3tk0O3LMvM=k32+I9Hx($XgcaQPG)sP5SYpeKBsVVW|j{?ETH|B3Se^H`h zX^(G3qa~zj2?>O-{aNA&XGR z8@=idEF@%o<#2nf2c)YrCF%#>oG5`AB%p!=gP11WjLT};w>;erH;dns{Nn+qfChXytiL_@?C)2(>Yu-K2XR#YOSSX$ z94m^8Cj$a6JFEWe*^t*4kf``C4{^H>03HItef!r+#xEn4sJ`K^2Yxhr=jkc0r>AH0 z_0|#n+^0n-r|XG2i4+HX1VTIgMLN^wf81iT##Nu$?M>` zw|rrcUcbUZmOWruX*fA6xGXQ#aMFW7v^s_#wa;Kex#w`7LLm7V2y%$c%=ZMrjY0kR zu0|MP7R7UenS3>nHLj^Ub2$H8I%nm25ID=U9wZSfv@v1fbO54;fn}r=)ZZ zS6F3y{P>Ye+cbs~WzzhI8}c?{@mR#{ z-=iKHgR@Wgp^5X9Xw!0cbr*Re2){I8K$K8L7`wH#HG{2RgVsm_l-ENwe)CZtF1sZ) zoAW#8x;e<&Dn+TS?%ze;_<2T3+fsZpa*_k3hD7=&qq-RY6V1L1Dk+A;rdzzp7JN}E z0vViysC&r$igH{_2Y+iDQd!+Ht6D#O`t*?M^Mwl+Y?p=6*U9~?EQK$`w$xq}xaQr7 zjAI}xf*`v%2O>cnTEKu{b<*d&cQ3h8!9(Nf4n}w_LQT54=>DD4^*|slmtF0csHxK` z0jK21duz$k%q*7%QT46Xo2|opZYm_`IojEitBH`O@GDc@!ILW6#Y{#th}&`E5g%(U z{1+Tp$kz$J{<>j;w$_8X;eB3y_PRVZq-?-0EH1gO;6!&XG@DGUBYk5g3?@wU+(}@* z*<6pDrgAUymwp?AzCTd4cOu)NI8dL#=G$>2r=VCJ(IXSNHDeFM;WA==3IYMyn)1M) z1^Zv#XzVFw`Vvb&6qR78C07#xksA4v@`|^GF(iTX>gqf6c&iVt3tzDLlfAqy5*hHn zkvgxCGS;7q8~^45S^sRm$7D>HXc4P(Dq$>^@>hEr} z#XCObv(~JpX)7%;g=LlXk(|vRoCZ60?v7^w@a=E>++VIsGp{=&m>z5n#5kAP-GGnj zVG&ns5@1$CeSY19XRSKmgc_0xmS9t%vQE%j_}th5F~XVX)V65XMdpYI-TN^1C4J$L z*R*sX*nwo2FnS8a*7L(td_zPyIdEy2lD=pGr`i=L3alZJ`#*RP+$*(yY}Zejd@6Vr zG%Aml%vPD-SlD9uSn#Pn@g@|n(Fjh%=xMOiqs{Owy7|0JXVG6KiGU#w4{FA(JFS+I z>-d=I@*q)ah|2ud3y&p<>kG5PDcqY&-1VvDIiscNDY-L?auOpQ(Ty`#kcI;SF{-zV zPG=F17DESRXm`$McwBi$udwf)uLDzhR;s{1QY?Usm9^spfT|w$DQO4-k@*y0Xbvxx@)fjy1%DKXamEm<7Il)0 ziA_e|Z&~L%;fJjnU8v=SQ5Aj4me%E2GQoLhHvE*X%d(hSFrg2ZKtFzTLDkJP5fdo|(I@ zc!mjMCBUG|d>V6{w(yc4cN9erjFA&yeuf`cn85vkYksX$G|PpP@`gr$So&*a%~!(NJzLi_%CRHKuC%q; ztPh*kb_1jjhX#WxT_(6cX;;0kzBQsYw;av zbs($@(doeJjuAS>wTt59vs+~WVb^$7XXz_r61^MoOaRpEnStZ+*RVHw+Gr`W&aIK3 zsN-5S{|RkEkp2IQH0E`JXAsCNm^>T^^#oz|V|EzB+1V#TS2rBKD`XLsRULm4F%i!r zQ-TG65X1Px%;6__4?L^Xi|)5iW(O4a`-P^#vOo;-QSEO37wu8pC{AbcBp0cpwwqK2 z*jVn;=lA&lMK@O zU&g4veyR(RXwIc6d*=6VS&DFA)^!6}zW)rd~4t_Ds%(Bw98S zJ3uUDz&*7KafnH~DpjR37iY%%)TN~Hf!$(PkC|i6InsHC`D-b9ur+gd((I>EXQN`B z!FfS(RWbwS_Jc=X71Z@Zb|UIIsxY9V%Oyk!=mdh3>BUW)mQbb_kB%Ad&oN-`zDG?5 zsD&HjgAOE&p0dY&UUqUMkkWgr65DD&JVqKf0->hp(j{)Opn(r)St_84*>ji4w=2g=;h;!%I6xz|EK@KIo&hSA^Zhqz z`A}(Bz+k_EQkaIH#oAn!xeb(2FPXm?S^O%(H=Z3`LK7!uFOh9#F__vT(eBRupRrEm z{?gdwNqL1#ME9+k?zPKw3_9v~;-g%#{tD6hHB%`&PC-NY)EW)!ixQZH1!_JhU=q*r#WS2iar* z`0PknvY55TX^dmoq8%BYQ*_YVp$R18hSF`4@%X;?cL=RLvcO#wxQhCOd z_1ttb_c|Fak^aD)&V6+PisAunFQZ_#cHA%%9Bo9qp@7&0d_2|U;M^GJJTpytb{8k< zk^YJ+n@f*G8{(Ywh(@5x&OR2?KbCY<*nUl|_70Sg_wfh!%5B3J#tvuW zNw{Q_nxtk&b~R}ZeQ#}3sXH&)e2ytI>j`@wa4FfV;Y#uDW1rb@1oq|}lbmV1!_>bN zjnn+gMg;~m?A~_gA`8Inqm_TM!fY&extHdsjxdg@%$KZ*8IEnT3e9K-6~h*DBu1pG z77OEt8c=%QYB9~c;ez48phskRM z3bA*ayI0L_H3ngr9dIvSL2oXwT{OqjRcS7m5vieClb>NIC8}P2TKl%q*QMIYuiJlp z$VKzAlWMYwDCg0ymV(6LB0J5f_1#CGv#lz|#((y1&&@nN%9s)P?%E`c2MsHgF@>(c z@<3q>%ATq7HWhY&ov?2p_$sjlQ#xA5Ze(p)2hm|e#;Bf=t-oqlcd2Ik>+w@!_KA|i zk*$7RbGR;l$%(U#a)}`;_fAmc)NZuE8k#{4@geX*$T`Eek~ye$)7k69xVh`9#V?e~ zn^A{%ZBb$k%Wx+ORjw@13GNu%XUjD&MzNV@hNSHH7gu7}xaew>n)a3#(3rz`DO!Je z&n336zE@J=)yK>iK+U(Ie^ENW%B(iHW0(J0 zD&1jGSoRRj5{ngCp&x~7S&dBw+^|f2B%BxJxgb3{^%GBF>%>6)F?AkVPg}CA=rGA; z;hRw1jfK=2>u)2+2|{g;>(CBH#9d8#gbtg76&o>3|tHI&0_ zh!^%+Ah0wxge$e9&BYd35+243k7hH>Wa&`B3k=aJK~ZiF9&G?h67Sw*kF{MH1jp*t zNJ3Xy$dR%WVFUuyeYLB847b|6rdyX|(KAj@`{J(DF>LopUxLNZND=iFSLX&wPHdnrY;RKiNKB&hV}*|+g-^MgWfoh7F! ze@W=n*k@-CQa%Rlt^RMOaZoMa2d&lZSl}SGRacEmAju1rg*L=d$8~**3;El2aMke2 zSX)k&T&Yv9=}#Z0K?5en{gT<(U)(rmcR%I;USb3cF(>1h%LT_Rq$RH~+k4%5XwB6# z#1Y?0U%=9#rZ}*$i5@9)`aonlg9o^HNS|qP)oIAJ+rrS#N@Z8*eq)Z~^9cPK-Mh_a zN6$s|34sUofK<`g#gD;rl&!#Xm69q0so}Q5xH?4k0QM`sQ}6w)NC_Gw4jfqEA8N~p z^9iMJF#`HAL*B=3mVTjx$()`!(GqCCs)jfpU4~LxUlD~yg6(m+Y+1($Xf;?tMO^>^P2x|I4@`k3!9`~TjbTp-+)aso38Y8vJ z-EKy0=GA3xQDp{VIWNi*pqegu4JqY|rzU2CQb0+q%WDb6IwmQdp8-bY889veGUC_# z;#LSs3?2RKFUbP3G0Bq7=iY6hk+EYat8!VAR@U=68(dCLHT_f#9CHzal(3vLjZHQu+O1Rx=J~L=C${?91e`3*2DL(&> za+}Z_W(SaZ;z08j+jmoVvSFWjO=gNI_i(t%Om6+UV@u;6t`E z8qm~AgSG5*d1cKosmR$ZTqI1mJepLlf<~B+C|-d5!@nGQQFNTR5W%W|J}HS*yCmOg zmeu~3yS6_!hFPXeKOfj?F}68K1FopxoT!RwbKO+y)EPk6lp^sqf=fe{>^6djSj#lF zGM+@FL$$=bJ2}J5@%P{-R2%j4$PCzZQc`J7PR_m*y5ayMKr;l*i-47k^n`Hqm<_Aw z^>P?r@GSCGevnU%cqQFArF=|}4Va9;P9#_-(|?=mg~r3y&;z#cr>HTp(*nYBa0>fm z&IqU9F*Thetm+O%fAYPrV+q9IdGutGY~k29y~nKW<4-1UOTZ3-9g!`qhtTlzJH$Lk zaZsC|@``y{uwR3Y5{5tb;W^Klcv63__5jt=OM_nm*+FU$57=ld84M_SIR$gHEon|P zL9Gp0?6*?(CjG+J6SC#W6mPQ`zj=^-@Z(|lqf;2wKDcND4BU5he|(1>Hs1BmL`K8O z83vAm`@|$mNy|NgLL=(x4&N(z51dz`;5Wh|q`x$s@79ECFoadi&l?*~meb5Rt$cEZ`hzK*prvSoNj-syc#(=7DM%AWbqS&T!lZDV(o1J)ZJQX+4qs zO}h$u-k}!Lg_Rn4WagnKoKO@ffNW$8vN4cJ&{0I?Fr9sg9UU@^g@j3JcleD$8lDQX zs6$~$tR$0cZBM(QQRQaRkXqR00f~N%OEqwA7y2p$QEoqIEPaguQi#=87u9v+@>$B^ zpqg|Z>D$CyG&|wa(AvvEQZ#7rxwNPcbp|1AC0X-1Lk@@bSv#^OVH&aAC+Z4-S|8*q z>#xX;sf0D%w2KA+3qb-b?x+6>z6zO8CIPI61KH=Q;kCEK!k_6^_3hN(2EnUWV>adE zQIK;2(fVK4`RrX|MK1g#rlxjJ5MeP;JvS+J5_o}f04p+*Pid)YrFdjaPy|bdZUM z$xR|e+V4yrBDaH7&l}MElzNRd~dY|Uu3_0pHPVNtAkYC940d^9|>EsG7 z!9P#1FqaB^0DSkx!Cfk#9k)1NQtB&w_x=S#P4L~<3y|D5)K|b@ATs@HFuD{_@3yn6olSxv(X4izD!9BAhl1|YS7EGLQO*z`1^tc3;hdCq%$n!UeQb&0TbR#}fz z0rNlU5$5?kc@8pwgstDJjj4W8pn10iXLUF6=yXRc>wU_I;*tmui2JBELBOL8;AO5) z?OinaN&=r}T!o@UfCjb~Y?1~@_IM7L4OU!GP*y%k$ZzTwG6Ka*3qd{;h6{wd@L`|*lzGJb_X(aPm-#6E7k!71f_Hukq-DVZ#bO#ovY6E1 zYUh_VN6St*O#UG3`Mo5?;lUf?)z6H$q~dN#;*Le8B(rqrDUA4+aP#@SD6W>9tXK?* zvaALaL{F4Dz!SqNR>A+NEJ zh*M3P#~pE3u4Vt7ar7#Pq$uu(TUy<1`Iohq5XGH`tuhDyU#E~}7AMv(248`wp(9~5 zulYjbl!Dp|G-#mZl~ou{?vuFf!2KlJdB}OrR9@MxKTgzXA}Is!f7OO)t=Z`*6xX-b zs+gD!Djh?6kM!G9R^|0*KyM_x@%K>>)(8Nsp$6vn)gn%kuT8D6)~Y@4=mRS~>~lN+ zS{i;&pcQ3m&;NC*Ss!B+noQb)R8S84bJ&PqRX}9~WN87fO8{94C@-zJ#<#t>ME9hB zsOT#bXPf;gz=zouAwLUNjf&il7XpZ`e`8ZTZXLJcy03u!o^yd6yR3Ekat zs91J@ec%h##ljq9g&%7il-@Nj0O`E1enxiE$9xyl=Krsc`A-d4_nhjJzaq_>Z?@Vhi7>LU z<@^BqxFI;m0I$c{)}GW1Xxm>?_6>-%e!${K;Cfwv0yA5&LDzqw#8Zvw6zX1fPr`v7 zO}ZS8-S^;01IMbo6fNMbu^TfIKV=zvQ4KFv>E-EaM3c;K2fkM!9(8#xn3!t<1@}H=$>-ceS6}X5pig#fi92W~bBQ=wVE}au3)Lq@QyOnlKt1BqN(KeLZ@j zK+q+*!rVONLmqbDbtJQTj-j*iS793-vZt~VgXd|TNAqmybK~*vflnN4jCi>x@Qtah!cW1|O)Pl%%fPD|?zp)A+Cxu+sm$wv^L_g;Il0%S=yB)+5FOwXNmKZ( zFX=#wm)~szUb4&F+;s=LgJm|>*H)XFT3BbS?jH~AsyDAi71>|l?Kl5GbG)!sWew+| zFl^nNKN}J-RX!fQ($)386qGcvRd4t5?X;A*xcH5kn}8H~bPuT%ZWipQ4d~`rE+mQr zjns(6iK-UF`@^RKNv`tN^vr?>466N9%8eByWdjSI-)0Z7k5wl@n$K%(D*RC~QQg0E zm^ew^5xS@GEKDb3{h!g|B$u#^J#47BMtCk9F~rxWoAavX5e!KLhxq>79&=5LciGFR zOzs5aD+53@?4ul)SRtBcK(c8f@~twJmd!txVA%t{^_i49k}B|^!~2a)5Xarf=Nqjb z`h0>W7`^Ir52KW`I8gNce4Lu&1XtKW;_<#v$T4)iZgwzGN2peRxt48a-8|iHb7a=# zt>=AYOAInplw_V6eC-MnhJS^MyC83xIEEdbi-&58(cm9t2J}dqq5W7-M}#)Mx*)#u_tx9=7;jH*gAfSaTf1KY{UM2k4EzE9u1I4 zWV^8n!aSIz^5+Y(W+2q-vmA0VwJ99?J}WOS>GQ4Bq>7cZ%}B*&^eQleAhJM=pYRTr zxCrs^e$)_S0lvrQYi={2X1=3PM-*{ekC~^6zNs1BIHuwP{cdz?-^A4t zvR{9;TnJ{Kv|Rk78_|e9t;4vjn??pSEz)e0uqlL8@veBy+T}K8w@n?{emTaq(V>z_ zOJI`8hX<6Ms+Pwxz301k3gMaGVQAxY5414r*T=0402`#FhYtuz@cu3VK50J zH}xxpD?SsX=Pd$7qtW2+jxj>~(IA+3gv{Xmo9>AK11rvr6+?$<59Z!-G5J-?eBz<8 zboxi;bK(Vjxy0KYCRK;_RXaT3NY*PC+lB8srm8jBMZc-4e@6o8eA}6Tg0R3QD5?=6 zS`c)3wX^bn_q`Nt(4YM6VS`1kW+{!F9kj*fRNS(z@i)gzF_tiJZ6Q3^e4b4xfBn`B zsvpAS8a`pD5^td?bF+EC$m3(C|$NDe4{!FC0XpT11f~hy#4I8a4vTjOP;wpjTT#}xJuJ12 zjbQUQ$QLdfr9U@~{^xAoQ!|@bANh7BlXzcO;9rFTr=uE+vm;U+SLrrhaH?3_)@*;Y z(1Xsu-zCi4Awu6ojpja2%@?ra1Oztv?)FR&3mpw*Rd=rsM@TmDqqp|QUpS(1|2A9B zgsZ$k0`MDm(p^v@vM08T;XY*_klt8!<>Z4{y}85?B05TCo=;lv2nNF+Z|L#(tzMwhq%_H*8w$pc|=>Lbb8vKdFfYnbie>;%CWKz7b zD8-7#eK^0CS9c^H%Vm=Y==5PPiVf~+4-O8py{w1eEc_^-SRAg9Zx9#>oYAdrEGH=; z;sAu=JdI(|uQohe4UlNLvLZ@5ll!o3{w7Q-_uta8WxaIi(#C2tSXu8C$UYt@-|l*YJs>{f-M*cjEGZ`!6pHK-a5>!T0xTg(@TP)3oJ3*2TU|B->S?p@ ziOte;Ggvx@>m=VePeO0n<%R@xw+)l?)&7s)?ea*x`dBOG+oj*IJ@^d|4^LsH9UIIK zygkcVejiCY)jV1w4Ach{t{h+1QyM)X)@_bwA%h&o%TFW-=#}qCR)AT7ex%ZOH<&_h zWqy@^YdFDO6r#|yyORkoux(D0g@q~k@RY@}SmnwM@O~upFu5w>pgf!0_P-MzY{{cgpsdU%w=SYBas@RdsKyznSs}4X9b^|9}S6Cjtsx zd=Y=3LlLp8YhD*2aIJ*TA+oW@v_LNH+TmuNYYMW*fq+qsrrqbA=EWw!jV64TgXF(= z_w+PU4F4v;Uz_*mVFC;n`GegXU;c~0?Y7;2`u>>zByh{+`^PyQxfq|1WSAp&e}89a zM~h$*3gyU&@Q=CAtbj|Os>0y!T&j&V0_S~f_$8HnUKt}ttxhmPVY9F^;I@Ri!-j(P z))07?)fScJ#|8LdY?#wNt5AGvQr?sPo)LA&UITrJ`91ID^RPwmQXO^Y#(grxTh33v zZBiAE=EIIg-B5CDflXNfF-oc?@cy~2t4?NX(3>YQntJB{Rg5P5PY9u?-Amuv6O1JH zxI^*IyMV8j-6i4z!0406%=yV9yUNhGn|$Jv&C+q=hnUz&2}v3$d9K4x9fLZ0k`0&d zZ-S~si;+r>Q5N!W{ar1PxvGQ)68)BoKmA!(gm;D~*Vo1~p7?OepNES6+lwdh-1f*j zsR5Kfy4%@y8h1_JT|H{vc`5yeV`1iAhnecq8`Ku0>3aCQ8Yg_rx6Qmox3H+lu-*-g zyuUz4WC+l2y&Q2*j?W?}F!8?SVLIgiwFv%057ga8%~J|xr*Rb%**gy4Sx_hxWY+;0 z3H|)}lRQ2uimsjY%VEZpnA10otN`z<^4;m^EUP7z_((U4(g248$dX`OxNOD+>sjl& z|Cn$@1#x>dbe)ESLs^UxynN$$bpAgFJYJ8RzU#c(!}76J4S)yRz)!wIMsS6IKHdM8 z@v90ZzV~uLhx^+~GuZ=aWw9OkCW9;vhnoXg63@?LV0614?~ly~flQzY=$Y%h)7j=s zy*4+Vac+R-?}1kk=54l`P;+HpGKcqNd%Z~Zx{J;`Fh*`O3;_c^a} zp04Y?Ji(Xam>-3@;N=iqq_{`5oOu$5*w<^8lNK6HZfe=6O>dU=^xF+rkeCOk1>8EK zuBVQ7l2b3#>q->D!<+o!vIWW=^~AucpVUc}|NVO!Z19h*@dECGkk)3_n%ky&Q+fov z=<4sb{(Jlg`WKZd+nfgipwHtWgIf9b*2e{xCb-x&vlMe~6l`o*uU^~^Rnnjhn;Whu z0%~vbup`(-Q&dn;s`9zN}*- zam+gJ%h&V#7o5q|nVQ;G*u}(pod;W4w~k0v;bZw)U*^@M>~C(`+EYB}*aF(cW+xkB|imiZ(AP9(p2uMq}K`0#x(gM;Y z;LxFB&>=0QbR*rNba$uBz|h_KThB1oK6{_@eb0O5AH6PSo>+OW`~F11kjQ<#&X2CF z`g8sUB{Z^LW~#kEhqoyG;EWzz0sA>Her_xQP^ zJ@tcp6A-z}9??$TSL~`o5>tmez$~fhsm9F$6Iqo2k=vs=>T$6QHao5>-$r|1o>tVY z=vsGyqeRN%Ff=5&m0m_PmP06J`K4BL)Ds3v-CRiIi{u!)A2I8jr-f5yDNG> zD1MqVTeMR4N!T-#dap;}a1{sng~66T;rlL^Cyv%+@SQ#R4zWMW)nW1~DA zZ4){YjY~ha>#Xi|9-edI{P}CcSDN(7s7z*fz8l@?+pQM~-D1{toDE-~X2~Rtp7)l} zxqJ7>+;GXjEr#z8LwETL1xY)U-^tW;+00q?Z`&EIH7p_qbJbwgW@}O!Hc%gfI>0$F zFwr6x#8m9xDz;O;$nJi(&nuLqXM%_(;6* z_z1GQ2ShwFNJSM6cD=&dgY$*n?1DGl>_@Y?fRaO+e%1uJ07z}<0aQ|37DbJldCRba zP>NOA-6%-4Dp|X)+@hYDq7vHa`HLgF5*ln5M!&4#U@JhJk)7|MjJpgst}?ET+B)hs z7g#**Asr>m)%{-ne0NXAc*0j3k+7h^*b$_Rl3A<{A#Y(8;WS6OSl3-CyW_5I8SA*( z+imr2+&#NZppZ8Vw1x ztUMoyuM8gnl2m$foy^R_yqmp#QE3`$(S1CAEc!idN%6W*R5mIicZ4FEEEnS&Dz%1Z zEU8?$;YDRbiwA!^gy3`_R4-PcT}fJOx^OXsBOKM&P-;5q4Tjo(eypUt{{@2swItQ=Kl z6}OeC07HGI7nm=`WXd>U(pSp>4qU~mj#F1gQ1+cHV-TcR)j6}YzdGqB)iE@5)IYya z^?}|cID{tBS)tn*G(#3A;ELs6s|N?E)QlA0vAu-_1lECbfYWQ)xQoLh2A$d^R?im& zJlBRlfBm8{v9E0ainuWA6Z`Q*-uV4R&AWn>PSrVP(mY^~&<|s4ZvJK!x+Tf%KJq1% zz5UafeYM=}3#RX!3TGM^%TgF@Krs-#l>}Gi0|7hE=t|SNt8CBNB(82HTOSF&3T0kv z=5idwBe>LqW3E$F%PvNxzdeEN^sq8NEvxEWgDsJ6-FS_71jE&;Qm7nWKPv^^X(;|+ zgO*-JZH?19G*^Lk@5}f7KNUE-A1v)}Y%F~ZOdJnV6U|;Yc$&R1`V^6}frG8{_4RSh zD0(>xsK{)w7(VXf;{%S9w#=i1OwA_806*g?D8~L6WN6S-LIy~EYDH|l(h=_!%(`iu zcHPTjFH^|3uwlf!W@v1FxjI2h)Tm{rxMq(H~p`-sk6DQz1O#hrcJ z(+iASI5^4+t*v(F27%DUkwudJqK1Nkf+&v#cAk?SS;XJZzK1xR9srGW7!KR0nMl>f zxjfSXLQiUIwYgO!Wqg)cB^)+q9TvMI$;W~6A(X9Nkb;8ByODtR>$YLExWfd_J$l+< zYr|hPW=OB3p~v+hRYyhOY1j}%xy%Lm0U(c{>w_B4eM5If%F=U_*@(S%_b3w$gM~_Z zi2!<%SU{vF-S6o-i+(qDEmEe7T0YGKZ1n}e1bPXow?ATAbS~*4lIAd`1DT7y?=vs^ z)&~0FV-|$V6<3CAS?T}=6f6F_-({e>@s>A|i5aARco`4S86=;0^oj*otS5AY)vy}V zTxoIKTE53<+r5}+x*@fV1CG`E8VUth&k*1Pj4LHrNm96F&LRiptTBNoSf2(v4}2>W=^j zudoVSX8Dpi6Aeufwd2tWVt5PR#*=`)8<`-pp^LA(gj;11&Yl(k@RpfbvKt7uxopbl zT=mrS(rq_2yE(Sx-Z!W5^rqTl<(YFfdB;{x1GxxwVu8ljB&d7d&suYj)ykm*e!d%& zl&;Ku)Sz)fe0yGED)z{`OU$EM;3=pU-&O?qI6nlEu&Tw@Z5ky7Q*s8IYGj27_Y36d zJ=N41G>?La*^Q`&nYhi750W|6TZ>*ykvopalJ@ukJZqm~;*MFBW&a160Y>;(<>{pp zJ)j1b%o)TL@!^9eeh^5T;b{#V9x^%eDA~jBA?QxvEW5DRfbMh$`)358D$A=T0oCX7 z##+Pjw#GA}O$DcHr0vgbK8Xom8*FF-1IH!(3JQP%%g_e#II*ntdB=_D~>j@`;qkvh}foDrNuk`Y}tD2!4k` zrZ}L+DH9k84(t-)+yPfu^+q2>iUrbro=GoLtK4Ke$n>6_HM+uP;P0|xi3@Tdis{=6 z-`S_j;u!|&#v)0+JLX3;*nbKm$=)>s3|&5F5){Gvh>J8xMGgDseDP9|1X?*Vi<^Ke+~`((;>ID&!RKUE z%}ej&#JWi55fsuVkj~VbIAJrE(-*rCW%6q_P#Ke`pXE&W0E;|_E6eJgzV|-I8 zLL8*H@CDwbd-de*<*t8?5^^_Ktty<$9iV1lND~gjCnJ-}8#H$}Aq7=H!hsXeS%<3` zAHqi=f%^L+P5b9~yTR<<9KxPlP?s-mR%l7d3Zq5Yd8zqN*wcZ5O5^MN&{4zH`dl76 zTksm^aZ~KLz5yNe_Megl-c*+f2ySV!n*!xuds+L9M+3sDS9vT`^yE}j#9IUocs+?& z;)Hh!SL^m_Z;xOH+RRf32&mJntXqh8_iaP3l$e;vYTVDNQM`awnvB&OC4tfBO8rPb6$&GR$&B`}N`8{mw0iiIMNPG4nW4wRLnOf&D zt@0YM*actY3Pw&`K7IdDXukvN8{yQD2Y%g>iQS>( zdK0wTG;m@#7dyK=a>Q}R*!L>;iv;l0Kqhs9zn8P&HVPn@$(KP$A7b^42gEw^+q)|* zQ?q?pg$@sva*-1gN>xw#EvGZ1cka;d7p;!T=1y<%eyb$3CI;XQAThK97Pis$UOxexKB0mq?Dq@|mjBDxqrI+Bkgqt3n_1#`!+xZSiflk~a%%j-Qf= z&+|~?vt2zuQZ>$779Jvyk~u#W9~sx9?xaeyf@loOTtY0ILLreZnU+Kh0&AUeqA8^g z1`S|wBk?2?P@`GV>e=07L17&|S~>F7W^N>U2!~;yUy?nF*B2R7kbvl)BjLB_EZJRd z7+W&vdl#!Ftel&Jo86EAUuoiyyLa!k32BXK;nd9`ZcxBw&c(jkwGOH-=(mL^dMa1! z#^~eb5~_*|?(^2PyA#tCc-2G@K9!rc%td+`2mE+drs=Z0;nyVMnHFa&N##UVYctI{ zH%HW(mE2lYatGnG9xMf$fTcSB1{Ww{E_1jrSmxp9M zi3e95zX#cJ!Ao=JkP8eJ2VqIz#gS{v(IdsA#gdL(grGd9*8s+%B~gwwDG<}>Ox;2H zNePyy9nPz2=yU{NM5N`Mp#aJBR0r8>fwZTg)b%eALceybTFH(J{CWL2)d`%>>idHf z%b$0~gcNgAjg?hOQh}t+;p)GcWY%0?ciHE~vixRX1L}2Eo(34%ea@)CUE$$=vd(+A3N>!V_ zrlp7!uS5u;Qk@GOb`KxPQUGEH24GmJ*j@h<$#Rx^(9Q&63OVwVegJu3#&O~GGzByk zPYeV7C*Z&+E^ybHa@z`ES<@k!_ zHav9yl)3!w5M12DaLgU?p2){94h@6kJrv3E0|92^Id1{pb-{RinZW|hprnT#I-UE~ zIN9v8FE0}FF}QrpGoq1YPyGL^EKXZl13;(Vi{q}0p`@p7iv|<+fVi5a_F)G)>C8(@ zsJjA!?M9E{6D0pl&ROm*Pu6 zhYq~V9{9p@{n71Kdx7Aw zn!gmcx%j=Ja7}hlm@%!p)M4iZqInXORib*-?3!+|YkWJVRQMwCu{izk0aG*3O+ts+ zy;kIrI1#s=KQRgfAw^r6F#YFOS>2PlucmMEpI~ZsJa)4b2Gjkz`JD(E10>{LGpH3$ zei{Bfo!eum<=?wGT}5U)dEIt8F@DmMW4JXnC^M&+_5}!Sr#lnz09I6~3RJuulS{c7 zz(K3J4~W))wo5-^2X>v8RmEJlQq8f5{gY-zAkP zTX;QL#b(<2E;wC(YFlgPrN){5Bef%$3SfE11 z_N?~&M**kO+5-^6eEU*gc!5H=6(pdA_9xq-zlE8r4GAYHq^qGf$X(F+`g8p`qNM50 zO|+=48S90T4Lwjp73G8Xfah3GphJv(LXZD7b2;XbX>M#jtGJZm~a~d~hA!2>8vA>IMvEO=I5f zul|I5zP~%}MAp^#(bTW3b_26w{rt*@8e*FaW*QowWhYMi70#PF?SzusP$>?*tI`S5 zQqDEHFb?!+!%v(e{M0$1Bw}Plw>H^!A6eiX!DrX4R{?bEj>pEwgK$uJAYQ)W9kyX5 zs0z3Xk=eqb;_VQmf)JE;1jF8OmB{MmT(PQH-9Y^D5^7} z>+3X+kc;?K%gr7Dgnkt2WvAKcO63|Smk5u;0gq$h`hQ!dSA!+g1Vz>>RF5^Q#ofDz=O*IO5qZ_#L>i8&wJbqXML2SdWQc z3A}H>vQG-w;y?rG>DXD=a{>>th`W*>p|E*K@&6h&yJ?e-oSq-ZW6Uw?`vCN_Xy_ja^Ov`1 z7M#StMl#@Kz>Dw_WDwQlrS$6_PxucF2>{R8_W%eXw+k57C3%i9uxwl(c&=9B2)853 z%42}@%;hHUWKtb&F;{br!8p%W$<+lZZ~iUTp&|M^l~>f-9&|2nnydL& zTx4*8%mxAqA*h`bUFq4zC7)L6{*W-r##EJ)@wXW%wE#CXFC|wc6dfsm1y9W_j8$6) zC8HKG(^cwVXGRsorq_CHsi@j^t}#W(ouCbD$iO^FqV!E$^m5qD3Nm~ zxGH-tGdQnMZz+3c@}6Xf<_9jmAh{$Y*EnDj0gHqnFMlXEJAeL%TroMj-lkYo1oj$4 z#lqdN5%rHGXw*bWSFj5IBSg@%7LMtPSMm< zb=tCj{8<5dejkP|T>AC3_4rmo*IQgR1U#|;c>^4V*`A7Mvd{4k;&t9qW8%E*Sa3EQTG<5n9qZg;Q(s)+ujm(6$36SZ3 zGBI>qUDlmexh(*wp6?!{<|>J_rX2sqn{^j;TdeyxcIr8x_ zeZ#$M1sh=mjIKbUu-eAZp5QHIm&8}Uqtt8n5?fF6Op!I5pf>I5o;jIx5!&?yj(RH{ zg^^t6K-SR(w;s2$OS=Q2I(jpVxrBbRfX`GH?!X#5I^NL>c7@+FQn6AJlOb^hW7naj1Q40|I4qlP6)ro?n_H z)n40t1@XBQ(5I1SVR?s&$HjNAc1!>zr?PJe2g65U_GEyB#^pF_0^|e4(T(c4GS(_b z{+5@KP?t<_VVqwH(YR(^fD0=pnC59P-z|qoT>udQQpiBw6_P&YjYsnU)rCyWlO1MH z<2{AF zEDO3fphfWkE)M7V&4OSU7L4TXzTX^3b#Ces!^(}p7r?SC0sXzdsD3$v%9sT9l!W)o z_D7IQB6Z+&Dt)j9Y=D50^HC6tLtm|hGQJfF3v>+!!(-qD)9&IVmBy9hpPU-%BXb4F zV&XRskHhW&9qgw%;N%7z9R=<0O0S-86Rf@S>fZc&lK*NoL?{$zXgNkLT?T6 zqM)NXl2pfW_B7z!JtsAn=EHy_p>GbOTG0snz=4Rjp`p10Y4k9O4}EJCoJtwWJ7{UK05r z9%HhOgV%<8id%ro%OX8`22S9kp-DE95MAy`@Hb9`HqSmy@#e|k(_CtlaY1sTf!d9) zRTzeQG$SDq%opgcZ>H@gZ9Gqdvs_-%qLWJ7Kr|fr=+d2je2s; zDG-j^W1&xfHbNR^A)N28w}3^1?5rH2Zn05~z}w3QFqZ2z$pGv~k1`2qsQk|+lgp*m zghyU3eAVeWW&Q0el%@_-xO6E%R#B1Yu#BMbVFBGp)R;!93a5>YS-lkfr3*X1;8KBp%U`>V8b3^3dqZWKnslq^AKkc9zk=P@rz?* zPjCJJDRwLWZx*zQ3n*cQlGM|n~3{zPe6(^LkbR^)XVGBad zv=~)z=+M2G!SvQ_{cX@3A!US%f!6S5`&EiJm@atY9wPQ7xNw_VZ`UV0v;RA!5?;7@U80L8`*BUH6E=pZQo0i^R(B_jp zOrEBuqZ=1#jc*YbJk}D_DfY^=C92MdDOrxln@3sDlbA!Mo|Jn?IE%nu()S^%QdjA} z)i|>dE>33_hCOwh9g?wJHOYGRn`Ge$ox9DnAOKDH^5y)`Hva9I>%&jG~m4 z)tpRpIDO&_RVf}_u2|f(C8*}JRiA=2datKt+CM5{unMKLSK#90%&%5Oy?%YP$SV5C zB0I8}{E+`71yUyHNvKd}R71UVLq>HS6|_!x9W!Nw;_(%mhcqkx-cr*kPTRgBts<(} ze9w|nC%r`Jy%eeg(EFw9nRU9QF`5`~6--+?23WPb?dA6P9l< zc&zLI;GUQp&)+82)tzS-%eD%#u&@w1*bHkg!ZINEO$)dWSy%9`qPp)f;{dZLxVGVsB_N^mDEEuP^XAUh z>RKMKPy4k?4aAr7$F522JWoVl+cgjrf~1skMe>I6U)!8WyGBV_H zt9lkRphBi%`Gij~?jO;)=cTYCiR}0)cO0(p>fp(I^yM~1 zO?r&S8PU45RT?1@(QZ#-`eCbLTn!*yJ315A_W~ScHNv>Mk~yM_hyU38=5m4yun6Q( z3I74HnDz5*W-zYKT-S%K%z2NNKVF14i;r>0W|>WZXd`9$7!L6tyHYJ;EBhb@p()2} zS?kTZF_(I2dF}HR;Mf5fZW!V@(cfn@i2*GZ4v<{&wMAMEvgl5cc0z8#S+ictS}@#` zblC{Eqi0>lGZgb;v|eacv0UG|NYbSI;c*4|F{N}K^!no$~z-j^pr^S-0S z!Fn~4*B6=(?io?k7~r92bSD{?BRY6*wW+A9Y#JX(y{f}H9)*1VZZyls=ar9sO*|1g0jUzJdr&H25vr;Z|{H`02 zU_9>de(4m<5NJnKXdq@?gXR|R+{)3ADt0mM4>H0B>T?0Z?q=2nUkN%Ay$;pqY(qT; z<(0?wr*}9w$uSG-p%0>$>w(S2@~1A=^}h3;-)7~uC*t)*l?@GeyJw~#ECim{(-)*(M9Wq7P5Q*DrXZF)!~#aWI)fcg2Uy=Bx@U)-U~ zjP;qu#siw2xyz*$*2i7~rJCyRU(75w8Z4ji`Ycy|C>xo-=^PSV$ zKe*@5JeslJ()to5EDchV0k&y~Y%{;4q7tCH^%*irEKb>3J#dVD+u(F@oZUD*mq?B= zI*>apEl3zB2DJ!ny%O1RTlRB)-yzb_eX1^Znx6#!S9hXA=}cR9frkH@0c7>4c!BBa zk*7eH!;I4?Y-lf&lmIuzNZNE}@U86z@eNHWeio1U;tl>P5A(+E29ta>;O@FRG2mo5 zc|+}G1>-kgw3bpnZRNWls?v&@W3qx{$NTNC2?0wt#|!6y5*sNH;2Umu1%7CfM@9J_ z5OT%rN2E=>XPpOnw~0Z}IGSF&WPnb*Oy_S#TKz2^E^C5e%Zq!^{QYL}id6)e!?J#? zmw;7R>2I1}?tN;h_BRXW0bde7as`kf9{?YyHXZR252fk+LVmsOqZ$!5;-ky&O6odS zGN^<+b|#Dijg8lgr7+vXk8=Tc%5UVQtd##&f>hOb?2jomA2j#H`kJ<<6Ut#Jn7n2a zJ4+=HPLj2jNnCOnk+9=HvuNy_$vnRK13_EWVBHJ*d!@jZ{@j4r4fAVuj7u6T4FfAc zK}wV?Gj-jx9K>b<6gA0nr~5AX&gLT<&Z+;CL)D(*&)pH>+awDW*8jLg<{|KekhB!v!oWAg`z}gPXU&_P?a0!@2cF++QZBkEAB?DXT=?J zR~xG{6Sq6?krCL)H_$4({)-v6-QRY%Sp*qXak3b$ zuffdpb|x`gJUnP`7RtI7;4*ONw?EPj%c3TysW1TIcI&xaV4if&JuweQD`5E-rgE$I zILL%z4pupA{O;dAT(dfiS*N{8$}nmgIEJsQfFn#si+svwyP}iS#=V`wqz#_}W~^Ln z{yXdLH1?&xStK(#8P#J}rbEHT+Gp42$@*crinAZ1M!2Qsy%CRFx*2#CBZEZ(pC`Ds z3~cBg_t%YQ@AaZPuieBD64eSBNop7Xj=Kv&Dg*J{-r&gVBFkvo3&HD}tKTzCyM5u*uF6a;cXu!8$Pry8KNpmkYo|FbUZN`q(@ zbZ9Dx{$pVM%42||w(Sk)T*^E1hle3(m;ehP%g7~kf96CR?ar3$1#)+K?=e77G{>;LE5B;}{bBCq!( ze~P&XPMRmmBdPZ3gklL=KX<&9q@juz^i?ZKci$kbrhugYwE~q+f!| z3xUETMbJhRd}Sf?!?1bjjlU1ULBbURGdw-FoOKDUiJVdd4C_;NqXNddOKvr04QDpH zISIQtO~|H8rs9N~KytK+%DOTC5~tFuym?9V(##S7S7C(CyL598>*5nS3&jk>#2RQ5 zvOVB3)HX9OxMhta)&dnEHjsvk;&o+m_`nymS%M{HbKhCH`8pQ@TYdK)J`b38wl!#4Ci%0fmSfG*a*Z% zLVLf72WwQ@ke0n6mESi1Ej|HVQ}k5!T;s87+6`ysqcAO>$XK*iZ$9E5w0gH+R7rh9 zHml_O#}yxB)Iu^F2{V8AtiB7LsXifbd5i4cM%%kuL0{Z3c9G6HOQ-}IW8{GXWl;xU zq@ED8l(<6B0c>mWwr~hKn&9x?0)3E~WeC26#qw&Ye($LV3>tSdXpP-YiDemMM?XtT zN1K2%M)8A^4AFBl-%F)ji@pwMwzS42Xnm{X{|kY{$XC~F2&y~Uun$00M{k?-f$(e7 z&v;6s8>h%l$_1=tK$^VSzGLHE#w7pYDbRAc7LphN#%*|qTH(a}L2J}FF%4gyc#Mh{ zZ!md%W`x|@^8b&YM6neoitQ2feUN)_oC6NJmJ;SaLimgoUwQ#z*oZXQqV z+Nqb!izrtCF%5#1yavsq;ca938*OjHZdcu~uw{sURA*7I4KK0Xs$)T&#o~EZ`Q(h+ zYECO8sz}%a&kfd4WJJ&v>;~6$RH=?9rUVc$A^K|gVfiE12yzE0uxkY;8fh7oDQwN@Zm1VdNI}cc$CHkAJOq&{U{Jc)Oox!Xiu`#05DlkGqb6Xxr>ei+>bW zY`pbr-2=4~RVJDfI!6%!J6}NxpSiZB9c^uGF8McQy_%FiHz5(SJvr-hc)_Rnb+_!t zI~7J3j@z=BM?!fjM{uFYrI2ijHm;_yO_&7k?86SakNg>;9Z7Q6y_75GRs%VT&_iZl zTwXqqsm{x70ISCA@PLnAI6?X4VV_V^O3JFikVOk$p;>A#=SIy2p8& z685z7#F{1f@?N>g?vi1gcOjLE-&qTJROkeHf`Iw%nM3^#UG!$V_``c=jOEkGo|aG! z@8)nG1=1s4uNQuG*0Mc49RuFTc%sDLQWe~==X4_-gaNz>f^^C6qSoJDR{KOiuhd#Y z=48|rsFkXm7sq8W;j#>o76MTKcF?h#?zAUXX)}~r@<>|xyaNDuv5nCUucJ8#Q?BS-C=^#>>|T%E zgLgy4PgrnMD91o?bfZ;_SzaF(G;*NIn-9wHP++aED`w~D@KdKJkCSbJ$Kn6Q5F9=W0$;qkg3V)WdLNQaCOGqh5J zS4(Iok@a86wK2?ExyA0MkXz!=c-I(nrF;P(Jc#nMu?56QgbF*Kz|J&?R*hIV7at$5 zT=iryEkFMWP4bROXM!(NyR5y!M}!pb(lNjg7u!`(%zd1!QSq+Oj3C{8rz^SRSBC3* zvRU(4bw;ewi@YaK{YbleA-GC&H(+ilI9;g?+InwE-(II|WD_Qm|hB813 z09wEp(Pe(w;Nksb1$or(1OWDdFTE)fXac}`cSS>(fYWf2+B84`#sWl{?7{vXNQ{|v zS9d0*s?q-(%VU=~-w(bAiOB>Ts}K|+q!koiqk&Kf0>{?HZ{cEQ3_WXad4_)^dd89X zZWfQ}Z#vY7Jo?D#9iP)yE9iLgGG@mLOz{#$O5AT4A%CePYm+grB3|0Zug}d3jeI&lQ`Fltwx2tF58^6bBdBdQ|QM zxK0c{tvvNytTi71=cfR-(&aj;D7AFSADM=yVKYEq1=hW26)vzjisk0vQE3&5T@IeS z_VCG>83&gLFai55bd4w#ZoW6*pQH7LsgYTI&`h^$u7lWi~00mTCi%b0xWS%$+ zM0DiM96j8dECD#`@n8fd*Iv%qLk8Gt44Wz}?vBa;-_-O`=(<2kTPlZh@$vV-)C=@6 zVe#{t-rrj*B%Er$A&J0SDxk)hhISX*tR|$R-v8-^p4_#Q^h((-Y7T3UlL-aZo2cgxLS&7ZbG4bjpb*%y%3;XO zae6#K7V?ej)fA(mNE=JK8S?PP)Hf>Bzg?)}=fJW4-b~r``)s&7e;I7S)9*>jinU+s z2_yL{t&gd=^0s*C$V(eE3)Q|Ib7w=xK=7ek>Vh zh`DM@z8zje9<7-QR{%096LjU{iv`tCL!s$Z(3=&fOXxx^RPpVsmAx`lVPmmxzBi8# zUM1{)bKW6lp_obcNSdIdJl>%)l=)|CvXxTyaI@+L%UwC>H$3Ryz&_2_ZpmZN36j)# zUkpBYa-Drnxt#U!kYE%lzw1b4Y*a~$m|FXkD9>zSb>QsX>#rst?7G3cVAw&VTU++l z{XD>yjdCOHlfUG9)HgI-hYpw)1fvE>UAAG(Y2cC+PKyR5{O*!On-_q-0-^3Zsq-a8 zzCH)1M%00G98BeXn8#%d76H@}fGn{Bg+Q`MbC9gLaERD{1UHQ5F7tyI4b)RVhP4&+ z`~tAkf~h!%d7v=Jf?t<3Ly6MRlr&NT6vX}%`6fC;s`Gq6d|UFf)7k3=5BAhY-H$rvQ%JQK$d+I0_Kr0rmI{; zElrG3V`G}N;GE_Rd>DaLnXVZ1(mnkWRvQB*347hZ5A~eDz>TMSev{RpZCTV8l`E&y z{CK+Xh*S|UXR=PnOW^VUNMB!O>>YK|ZX>bHOFJ2t#@OLg71PSd z4LP`~YSm8fDumbqA41Ssx+nr^4UOwi;Rn-M80p%M|9>7xh3TjY@)iRdZCV+5pdDts z7s@ixzDdIZjNlX$miU41BKi@|nBR^F@RQow@?jZsI0;-sJ$F;C973=$My`t|+4iACykZ&nY;OTSpqvkIJ3q$OwYhysvC_SeD5>!_ zh3hj@^J#nr*;$nEy-KUsRhD&+hMI}~ym3glh>gu}Hx@o*p4|WYqJQWkqLD8%U#Qbn z%2Xj-LihKMt<|6t*#72?A@@FJO*)N9vecj$)F9rb{YGD)QEJ7hKkw%oAXZTD+x@N{ zvP~os0XAB+3IERMu z!(g-D@PrZ^kCy8Jokl}u_({5nW*K1Tfm~M0HrZE|Z&z-PtlA;O3|Zg>{EoHR7p(zX z6U)}DJ$^a$Qr`Sy4UpAI_5M+bHVMCAu6^+Hk-#K-_5e{#MHv|-OB&S885F1>txq%) zCB57|^&+O9cZNP4f`i?R0j?h9pDEt1PJ8%7?+N@=cQpdbC8nW(=kPiGu>X^%)B{Lm z29;{A6KeCb31Khme5!4Ns(_JNa8dsa?3Fi^%5Qo(EtI5X?;furn2Mp*9Z4Pt@@M@V zHsV0%F6?RNmsYyY4T+|77D^~z;lJraevz?LkM^&^tEP`RG^Tf6RN;G0E*unxln&%~ z`0Q(|xD9ZV57$6oHuUG|ZP3R57Q8Oo{?dH^Pw~`4O_9Yb#@dd+E2(wzw5cmEu_k<| zqe8gDrRTNaezRQ>ar;3{Lk~4P43+EU@|VV<_+X(g<)-z)+h8R$J8PvO`O#CJaZ7We zlKq&|EQV!%%_A7h@4Baj zwJgpYzdQ$h$gt<_<@(7U3A?F}MF;oY15IOq+l8+=*YZ<0YP8#h5!ds3gsnFvKDwD# z&|Yy}_M$)uanXH${kViRrN6j@yYFPEmcr^n!mnYD?jx>7&1p-;Mpe~p>wbq9*W<;R z>%t-$XdW+znJcQMt2wqV22Fa|6`jTE*B!MG^=N=_-hWsF$uMFkvzsQHY|`TCms?N> z?t_vfVRsqpC;&*Ob@tr+Yp0Y`mNwocW2gb5Oq5N@U!N?mZ{HL&R>Ud9@R5BLGz*2@BTYeFXD2{ z_yZI*4_$<2YVbeYR7h`@`!!90IW$-n(8{AK98HcCFD2uGs7LfCSlNcQWsHHf$i7#W znn0QlYcrtjTwKsX(~zK1$3)c5Y5KRW5#x|$ME<>9LN>9#xs?EdMPEd7h}B{Yi?Bx`gpJOQ4*;)E{<_k6z~%y6!^7zay9s!R4!`bw8rT{9w?FmONjpscCxZ0<&&9Iw1Ti4GhxM=C1k{`Cib3e=4xNbbLOl%>fLd;)@d z443{gcz}t$oFo6gcC3!&)$#GWY5(%|XXCOa4FCFd^MwFmiwE!Uu?R1yaAg zXD{!}(Dk<-3Yz9;RPzs+W>Cw-0o9J<=FY#G5cwt1S%pywW5f%6r56Y=L;pgbFOX*m z=JOQ5wtxJ;9Ovh)U@u93UJVB0`8f(;Fd)8o7#x9L&Hj3Xf4%`;)BzdWZIu4`Fj`>7 Q4ud@uk`zq4_w@Du1IwC~`v3p{ literal 0 HcmV?d00001 diff --git "a/src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\345\212\240\350\275\275\350\265\204\346\272\220\347\232\204\344\270\273\350\246\201\347\233\270\345\205\263\347\261\273.png" "b/src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\345\212\240\350\275\275\350\265\204\346\272\220\347\232\204\344\270\273\350\246\201\347\233\270\345\205\263\347\261\273.png" new file mode 100644 index 0000000000000000000000000000000000000000..e56eb79936c2c080f2b86f88e535f1c2eb603364 GIT binary patch literal 17544 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 DdTP7a literal 0 HcmV?d00001 diff --git "a/src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\346\227\266\345\272\217\345\233\276-\346\231\256\351\200\232bean\347\232\204\345\212\240\350\275\275\350\277\207\347\250\213.png" "b/src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\346\227\266\345\272\217\345\233\276-\346\231\256\351\200\232bean\347\232\204\345\212\240\350\275\275\350\277\207\347\250\213.png" new file mode 100644 index 0000000000000000000000000000000000000000..d93e54a685c155559c0985e584ab65df417e0b7d GIT binary patch literal 85457 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 z

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 literal 0 HcmV?d00001 diff --git "a/src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\351\200\232\350\277\207AspectJ\350\241\250\350\276\276\345\274\217\345\244\204\347\220\206AOP\347\232\204\344\270\273\350\246\201\347\261\273\345\222\214\345\205\263\347\263\273.png" "b/src+/tiny-spring\351\241\271\347\233\256UML\345\210\206\346\236\220/\351\200\232\350\277\207AspectJ\350\241\250\350\276\276\345\274\217\345\244\204\347\220\206AOP\347\232\204\344\270\273\350\246\201\347\261\273\345\222\214\345\205\263\347\263\273.png" new file mode 100644 index 0000000000000000000000000000000000000000..475ca0387269a72c6d936eefe1535805ba134c0c GIT binary patch literal 121323 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%0A3@YrN@rpT2 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 Q1@DHKnOr$ve$FlSzaJiY3;+NC literal 0 HcmV?d00001 diff --git "a/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/Advice.java" "b/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/Advice.java" new file mode 100644 index 0000000..2e4cb4f --- /dev/null +++ "b/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/Advice.java" @@ -0,0 +1,11 @@ +package org.aopalliance.aop; + +/** + * Tag interface for Advice. Implementations can be any type + * of advice, such as Interceptors. + * @author Rod Johnson + * @version $Id: Advice.java,v 1.1 2004/03/19 17:02:16 johnsonr Exp $ + */ +public interface Advice { + +} \ No newline at end of file diff --git "a/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/Interceptor.java" "b/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/Interceptor.java" new file mode 100644 index 0000000..04d67c4 --- /dev/null +++ "b/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/Interceptor.java" @@ -0,0 +1,51 @@ +package org.aopalliance.intercept; + +import org.aopalliance.aop.Advice; + +/** + * This interface represents a generic interceptor. + * + *

A generic interceptor can intercept runtime events that occur + * within a base program. Those events are materialized by (reified + * in) joinpoints. Runtime joinpoints can be invocations, field + * access, exceptions... + * + *

This interface is not used directly. Use the the sub-interfaces + * to intercept specific events. For instance, the following class + * implements some specific interceptors in order to implement a + * debugger: + * + *

 
+ * class DebuggingInterceptor implements MethodInterceptor,  
+ *     ConstructorInterceptor, FieldInterceptor { 
+ * 
+ *   Object invoke(MethodInvocation i) throws Throwable { 
+ *     debug(i.getMethod(), i.getThis(), i.getArgs()); 
+ *     return i.proceed(); 
+ *   } 
+ * 
+ *   Object construct(ConstructorInvocation i) throws Throwable { 
+ *     debug(i.getConstructor(), i.getThis(), i.getArgs()); 
+ *     return i.proceed(); 
+ *   } 
+ *  
+ *   Object get(FieldAccess fa) throws Throwable { 
+ *     debug(fa.getField(), fa.getThis(), null); 
+ *     return fa.proceed(); 
+ *   } 
+ * 
+ *   Object set(FieldAccess fa) throws Throwable { 
+ *     debug(fa.getField(), fa.getThis(), fa.getValueToSet()); 
+ *     return fa.proceed(); 
+ *   } 
+ * 
+ *   void debug(AccessibleObject ao, Object this, Object value) { 
+ *     ... 
+ *   } 
+ * } 
+ * 
+ * + * @see Joinpoint */ + +public interface Interceptor extends Advice { +} \ No newline at end of file diff --git "a/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/Invocation.java" "b/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/Invocation.java" new file mode 100644 index 0000000..b0def5d --- /dev/null +++ "b/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/Invocation.java" @@ -0,0 +1,21 @@ +package org.aopalliance.intercept; + +/** + * This interface represents an invocation in the program. + * + *

An invocation is a joinpoint and can be intercepted by an + * interceptor. + * + * @author Rod Johnson */ + +public interface Invocation extends Joinpoint { + + /** + * Get the arguments as an array object. + * It is possible to change element values within this + * array to change the arguments. + * + * @return the argument of the invocation */ + Object[] getArguments(); + +} \ No newline at end of file diff --git "a/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/Joinpoint.java" "b/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/Joinpoint.java" new file mode 100644 index 0000000..258f256 --- /dev/null +++ "b/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/Joinpoint.java" @@ -0,0 +1,53 @@ +package org.aopalliance.intercept; + +import java.lang.reflect.AccessibleObject; + +/** + * This interface represents a generic runtime joinpoint (in the AOP + * terminology). + * + *

A runtime joinpoint is an event that occurs on a static + * joinpoint (i.e. a location in a the program). For instance, an + * invocation is the runtime joinpoint on a method (static joinpoint). + * The static part of a given joinpoint can be generically retrieved + * using the {@link #getStaticPart()} method. + * + *

In the context of an interception framework, a runtime joinpoint + * is then the reification of an access to an accessible object (a + * method, a constructor, a field), i.e. the static part of the + * joinpoint. It is passed to the interceptors that are installed on + * the static joinpoint. + * + * @see Interceptor */ + +public interface Joinpoint { + + /** + * Proceeds to the next interceptor in the chain. + * + *

The implementation and the semantics of this method depends + * on the actual joinpoint type (see the children interfaces). + * + * @return see the children interfaces' proceed definition. + * + * @throws Throwable if the joinpoint throws an exception. */ + Object proceed() throws Throwable; + + /** + * Returns the object that holds the current joinpoint's static + * part. + * + *

For instance, the target object for an invocation. + * + * @return the object (can be null if the accessible object is + * static). */ + Object getThis(); + + /** + * Returns the static part of this joinpoint. + * + *

The static part is an accessible object on which a chain of + * interceptors are installed. */ + AccessibleObject getStaticPart(); + +} \ No newline at end of file diff --git "a/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/MethodInterceptor.java" "b/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/MethodInterceptor.java" new file mode 100644 index 0000000..80f80a9 --- /dev/null +++ "b/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/MethodInterceptor.java" @@ -0,0 +1,39 @@ +package org.aopalliance.intercept; + +/** + * Intercepts calls on an interface on its way to the target. These + * are nested "on top" of the target. + * + *

The user should implement the {@link #invoke(MethodInvocation)} + * method to modify the original behavior. E.g. the following class + * implements a tracing interceptor (traces all the calls on the + * intercepted method(s)): + * + *

 
+ * class TracingInterceptor implements MethodInterceptor { 
+ *   Object invoke(MethodInvocation i) throws Throwable { 
+ *     System.out.println("method "+i.getMethod()+" is called on "+ 
+ *                        i.getThis()+" with args "+i.getArguments()); 
+ *     Object ret=i.proceed(); 
+ *     System.out.println("method "+i.getMethod()+" returns "+ret); 
+ *     return ret; 
+ *   } 
+ * } 
+ * 
*/ + +public interface MethodInterceptor extends Interceptor { + + /** + * Implement this method to perform extra treatments before and + * after the invocation. Polite implementations would certainly + * like to invoke {@link Joinpoint#proceed()}. + * + * @param invocation the method invocation joinpoint + * @return the result of the call to {@link + * Joinpoint#proceed()}, might be intercepted by the + * interceptor. + * + * @throws Throwable if the interceptors or the + * target-object throws an exception. */ + Object invoke(MethodInvocation invocation) throws Throwable; +} \ No newline at end of file diff --git "a/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/MethodInvocation.java" "b/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/MethodInvocation.java" new file mode 100644 index 0000000..bd52f38 --- /dev/null +++ "b/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/MethodInvocation.java" @@ -0,0 +1,26 @@ +package org.aopalliance.intercept; + +import java.lang.reflect.Method; + +/** + * Description of an invocation to a method, given to an interceptor + * upon method-call. + * + *

A method invocation is a joinpoint and can be intercepted by a method + * interceptor. + * + * @see MethodInterceptor */ +public interface MethodInvocation extends Invocation +{ + + /** + * Gets the method being called. + * + *

This method is a frienly implementation of the {@link + * Joinpoint#getStaticPart()} method (same result). + * + * @return the method being called. + */ + Method getMethod(); + +} \ No newline at end of file diff --git "a/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/\347\233\270\345\205\263\347\261\273\345\233\276.png" "b/src+/\351\203\250\345\210\206aopalliance\345\210\206\346\236\220/\347\233\270\345\205\263\347\261\273\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..b55431b8995704ed68e53a821556e7c37391a107 GIT binary patch literal 23170 zcmdR$1yEeey6=fV2yVeWxI=IaP9QkJ-CYN_5Zr?k+?~PQf;$9vcXzk9$lm*$ecwIj z-dpuvy{cCfGc_}-ds+9_-M|0;TY)lCqVO=-Fc1(B@SntlWRroLO{5XK|p-a7{P5a{Uy>gJ zqAbkqPBseo{K8I7Q~&}zgu4TLfYOx^6@qwr{!44heg65awU~+>1O!6I^Z$z&Y6Ki$ zcMzY1_!XRH_mkhap$R{ArIN(G7C;I5DBw()ZX#q#NI~Bu5n+lZoOOi)jYo2hPNZO> z`|5=(64Gn_7dLO-J_yT*3&?)V@-Zb`p}Sf7T>HVXu782lF|MKiY|yBp=0in8Ma75V zhfB5!JIj32kI+ONbhQ=G&_q5N63|3w8Ula3q;I1LK>vObjzbc#g@r-)I{2h$OTpaB zs|mw~{!%zD{(UVn4qZ8+SaqOF;Y;7R42b~)>wZEC?(IRM*i40N?Ow114RjD)*=s~c zHj2DD64|ldM%M`7=9Y0AUej9m8@?S>fehd@!)GL7X(H!gjFceG<54%zGg_2 zt2>TH#m7Sv5D=il3CHQrTCWojsT6VnhiSYMiCYeO3mn3P_4XJ`+^KI9k|Vhax%sV6 zM9Es-th2z$BC8lCym6pH<8}-9;R@xhJOT>*83d?a>uzLF)GajIP=M8grn*wu zT`-TTtqhr)9?NwXYEE%=X{-H1Lp!=9FbFv)u`=IWwEaY03*GEg&`fTce@m;Oo4(5_ zzot@WO(!QOzkIk!H}&8j&SLD07v2);)8P0kW2k?d$B87N#w5Int0rUXr!^JulQc^UXE@`k{`Pk<>(texsTe+Hc(kYFz2a7ru zGR&oz#9Oo@ntD5Fr(&P)-#A)6&=!xbtmPUeXnLyDc_fCMDW)2Ug|m&+-I$3`LE8gD8dlde3Y2ThQADSnz?SHTWv%76GTY0#6Ri@G>ao zXB*32mC|U_k_>Z!tW;3?CN|{YoWsY&`Y&accf84ktg*a2R8>6&cotM54PE)dKt%I6L0(~+Utld}(zrdnxZhUr*^Kcrd?`;n#}FRSO} zY)@y!R)&!eYkbR=9kW>*Eqg6UUuIu=#=fk zc#e%8v~k|qdO#Sjw+To2dAj*0Y3HWZeRPgGN==DhkM#cjSY+@Iy&able zvS2x#`_h9X7mgB1>e0aSswJ@QHIyrb%*h5-KM06z+_{IPvU` zQI3e|(+zSNURS?97E_(or0nhKWi8lxhnf3;ru&Z#w1#l5g~E91PirtD(xC#0bVq$_ zMPVtSN6ni4K3p{`aV-$4j=Mn~@4MDgJ@NJK(+=6)Y0xhcsv^&ret!I6TrJq2b5r;} zXQ2Hw&*U^%cYnYalWTba&Y3Cp2_?JFIQ)ajq1?a&;mf<>#h<&r6(-)E^(w%_5};0Yh=vPI8dwq<5-v~ObF>}24R za*ZjYpLBw6KCIGO$I4UtwATWI=b+N;eem#3c!TGa1GD7?RAdToYq_(@hd|mS#usL> z1MR^j3hmL`U!a|fc_+c@0d-L#x)GdGxHXb-jxyySr06~)&W#K$DQvK2kf3t-i(1bk zx=m>;3kK<~)6_?H;&9>;VgdsC1nEzCJ~9a>0{)P$m*zT>BymK@e6fOl<)SgLz1)eM(_DFylQ3Vs!9}6#nGF4XHret z*n^E~GOZ=cYXy%K4u=4T)LJ{E6I1WaS&I{uC)_5#uo%U)CLb=7Zk1Grq@J6??^EOi zyDaW_uGOC21l69!)#mc4YG7GwJG*X-{!DmY&OIx{RCWolugqfILrp6;R=?-1Ug!_} z;vs2j=6pFh%VEuGMb-42KEek^5s{&&J?S|2fQsBOoFNG^0|t-FNVpruTqzklpm+4g zf+5*NR?;gDF5PCK935-mY;xR!IwfL7I+v;BwmUe}oIWK#ME5ZlUUiR6r5&F$JAD@H zp7JqqYsc2Hcf9&l_G`UF`eSw-ialq{$l9(|L)`e)=v{Zq{+iMoe3rgqSZ1F*qo~GwDUAW(alN#0WHg{qi zG*>d2LG$OSb4@d}gMBzNO7#ReA=~6NbB+greG_KA!@-79AI~dou=+Y9EgrZHVm%+$ zn9b%sSxV!M3T~eKOu;iG(3@$bjOR1>JUb?M#tL;7se+YdSjH=3XR?EWqgJoW+}4{p zwY;@fT-`IzpliG4NuY-l8xy>(F7ZX}%heHI%ns@Yj#_rd%vfMTa=(+eR3r%nYcUXF zY;tq3SpT-6+FVGcGfpO#UmlAObPuYMky3!&P;OkzFO)4*aKq=cAv?_@$ZuIH$G>y5 z5M0Ud+GccOc7em9UBE_#a%kVIB3NtkdOuJNg16Y)qO7>zBOt%`<~Z)%3O-^j?mW@* z5Yg_H8->&!VnnfAYD1i3O;;_RVsM&=^LFkng8R(F@oRJt&)QTJC-cW_nVuLj<}nQB z#`u)c$zC81G|eHR<12ZAoIE+3vo67Luo8BR>KA?fx$iFT#=1TcG=Bg7ehVWde6ZWn z&Q!D>Bf#Jgvj4Fo(XeEkBCKV+?e;uS?iRJF5zUsiTDUggXtu$xvwJhuz*D8kzq;pD zx~rG+ae#5}ht3hRaG7lRQVP;_8}6iM@!v&A-;OM*!mY*^n8@BPhu$~Z$tlHzW{Jz_CoV;_ z{pCjG86T+}7PK@842>KZmb_o+rInF8_Lr8|-1ETA>_^sX>h{Fz{+70lB7yX6 zFB^D|oLlKf_CXRDA@u=5zpn(P^Fdg{JZ|MRyV_?e&#bRkRhMGPCTeQ_-Koh-m$U+tX#$o-Kpm!Em zcKfSw0dI+BybmF{A|fL*G|lN%_a=*@w#ql`^@i^CJ*F>*3 zW?4YWd{9e1gG_ZLad8-tQBhT?akOfFSRV|RXDW=8%k|&R)>wtlR+;HN++I*9fs;Nv zULWgxPGElPdb!`a)*X(FjO=AGSIwU-m#)+9XWK$79JH-mFP|&rTT{c<6@umMdUcrY zc(lmwa!zso@K9#EA>Md7YsPtl(!D)Vh%vvgU|(cVMq8wg%x5%&tB9srPlxDU?@$Gj zq}RKo6VddAv7l1;i5i1Kzdl&_sIKW3$S!}E%NMtKmMsxi>TsYMg3Tgs>A3ytg<6f} zM9$r^H)2*m(C~Yakne5I54ZO7jn1fF3KUv@r3>1JvFZ09QPyUPhD-HVs5<#05`+~h zmFRYd;cd^=SoygfEH>fLs#P<`8zIxJ4$@}M*CMIbcZeMN3X5K9+cr&EKQ114zM6ot z-N^7|*jUCNFy-#a=pMo6ap^g@z1UkznAJs3<#N~$@OZfWlpYcq8WU?|Y@8Q@ihg`B zS5wuEB=FD%OK)7$V87?r7ej3ZsZMx_obhAPWdbAUY->2v?dB8;GVAjXrhxG9+}dBy zE$Y&d9_{L)JEq}n&(T4)iLIPH0SRe8yB%lw`IvFFZ^K77bW2~)#~V@A@+flYu4qd6 zki++rI~p%LgWk0twLGN|H62gDz|JV+hxqQqB6^x79YO;AI(Y$>_FDll?+X6Q({;hG zj=Zm3?)rvL9FO{Ii)u08EMS)oi&QGIkYEW)$kc1`$v(%YEj%8#BO;@t=PY<`4*a0_ zQV@-6pZ002-rnqUBCBMB`_ z-cshlvTuo#r$qzI5?L*n)(byHkxkdx<+gGk%~rumCbDMN%7N@4E%O^QS%n+f2+CH7 ziRaL~bNz4bBxh@I`=t(|1iP?f;JPYB9+K;E!RmFyw43qqm=|$D0^P-g_q{l5mO?Tz zNYo)OQu4p{96h$B$w0zvUip@k(7U<0DKkjH{BDwi(tK4qe05n%OFxhgy&oU$B&Is| zXDX^zbk%%-UK5L+JW}7z1caHyU@-M)lj{|n7Gaz43XB#Nu%aKaXIQ1z@_Lg?N2v0V z@{Rqv0Y4C~NQ>^0L;Zk&RK=l-u#i_nwS2xaCiNJQ7!-^#lqt|DF2y%D?R&N*Q#Kkb z6=x-l$j3?ntl5>E1WgrUO4c|J-h<`x(HHEX^HnsA&b>YmgEOU!X%#;MyR+~3o(J>^ zj^b^Y4r@{)42?m1U_XP9Xtb(mfq{WQZHy8>2(_Bsj?d3QyRL+WA2YX6f-LFUu-;Ug z2`Q~F%m^zDEJ%n+wN8Eg9UB7#mY{$j&HY5-^JHo8bU;f20rhGCn#H4^oDF$wz5v32f2^o88l)XK$YI#5h z0!lY<-HwO(o|aeI{ZH+}@p+JNaDwk|&eqn#`9v1#?NyMUD|a^>Od$1SoLN}V0Cyrf z8;VSUHEhl{C9m)9%-V^Gi5YCy#l{Pj5S2qHTYlarG%AM73*&s?=d`%p4hc08S0HC!T_RqRU3(_=%} zMPcjQ9FBAfH~(Uz^G3onJ}^i`1^7L9K3#dr<&CmA0d0u1;HDFyY_j&1cpP0Qa2fiB zQ{69B{2nwtAME$1%LL69s?DYl2;7dnSRW4;8dRr*<>VqOL7lU>5(&Vf&tbVM6o=hz z6V49~YZYbcy-@!TAEi`CSoAcY8JzaZEa4FrshsTL1K&jB8GZxeX9jS2C}h&UR+>vh zQ+T10ONn8;F5|Pz-)Z1~%lP&9Z7i*t;^ROlHG{=0GaM!ZgfA?{<{+@Rv^zys&6X=8 z9F6gJf_wKUJrW26e7v~2>eG$>HDEZqpTP%OG@Ff$jhq72mjV)ZLpL4;jFCFx4n^hK z1bi!{kBzwLCow3%MySAzYX|moJj8XB=5(?;TE6zxMnfp~2X$aEluZjuz=~c1y&6$h zf-F3oRS%T*d)s1ZC1}f!AHVirQ@$;O^t?au$6fgT7#yS@uFj>u-{uPojeuYXPe_8g zy0*6CkhyJ0up*A62u^QZ_4)3Zuh~?;e@BS6U``}L8Q}PfL)Gj10J5HIXA*qUbuuvi zm!W3JhtfekPY#}^1mL&i9=QO8+lTHxko$9rU?a)y0xWEy%iiNYhv?svhz^#O=i!>@ zcT0bUbzXw+B8;( z=k+nsP!dPGm4(1~fCFKXGEp=3Xt-utjKl~_U`q?1fPg>?e5&@gw){oI@kjcyv&}ekNxVxP^z`&hHc)hPs;J@Ksn$7E zf}&#b>Fipa-R_a@Z4H3%154kG7V^?Ji2dTinQ~q^xcDpegpJwiS|R~`%RP)#GAGfL zZlXa<(`7D0E|Z9P?Y11`MmkO4OLnhm(I@_pC@r;dwRaSaib(28g=>oLxQaCxo}G~U z4N53{_t`Q;RF0c}ZQx zS0Oyrz5ow{Q4pTp7i+hBpPQ58-k{m+h808gy6m0u+S{JaU3QxR;7FcG@^^iG57^lr zmJ*5le%d6J+4n`;Cr#Hss1Vj``-1Wk!40%zdnYF+I<5K@pH;d8i|0~rGN_*d+UG%w z@QKls5;4HWBct{aR;mILaqOaZ{TI9o|1D&mTLcw&)AmJo?j{^`M$D!{9zsq(j1+#m z?b4`h4@I70$#ac^TX~i0Py1jVrS5qTg0R+kcXCswhNxu%HB&9-D_6wR}S$i^Uj!D5b*;yEoSwOhKjd27}UE&hm%5( z*K$p+Mx;xIQ0(ySvOES#K{94F?4Czj^_M9}Ah0DP^Ma=P6sD-b{`jLZLk zMm-no?It)k-=zKCb85F!R;C~tm?X4S81-TjHq*jiOIbd-qvG(Y`AT36uZ*<6VQLhf zlZwY&MC2Kd*&Z)b&dSP4GZo7V`4Fv{N~!19cab2;6+vEtIP`Q$jXrP>(LZI$xZU!J zB{Ssp!+4B{0*SA`faV<417E1oTo z!tGo&*VI0nW~|L9G^Ca>DE&7g-D2P$o|<3+T;h#e3#K78_Y@+YMWL%0)!+Y`-{MKLL(|LRmY#@Hx;AJRc3w(pRERJnBTj+d-*arQ|*X9 zK=l!_ZE?^0H0E2G%Njzky8<=Fkf59`3itTZyzT;@8?Jl(`A&J$y0xnfXDXO>X>y0l zymH7vtga29pf6#kil$PkTwBtO6*7|=>k{sv6KW2=vf3BwE?l~Eaxg!$Y5Q#ZtK;uB zH~06)4=WYZj~8)yPvR!r9`|AzWs2MTQ(Q$=y-bliej=D~HHT~PU#8FvcHy%7E>|(_ zNegSU6H234>_RWil~G_2rxI$a^rBQx=R8j5NtLl#@Yo(3VYK)>nN21TTE7&m6%H%) z4!uIws`$*0+hRMsUG}+C4JVuGo!O-pFtLB0DaY^$chq5&`%zEXRAY3Tc^U>=hC`7m z6XEUWc-k&=3Qq-P^m9t>k36zpeM7w?2)yWz-Virmcx3O7uUPyK{XIKdLb*FoP_;hE ztGCsX)5`C;Ge2)?{wR_#7y2gPW`{|tLvze;0-83kKD3{>%E@D~iH2_xNiCXkkG;(P zuHsjd_GA7x*sa!XSiO_I-WDXJZGQ~!SIZm4A8jL1Y93ueHVE+Bs3(Hcr%Gk+9kwWs zh!0dH!mix0IfNA$%j8NxTxhSkt;BuB?Bwi&CoZwhJQ)>&-dJg$+$fbu<96*QY zNLFJTDR2z`HeKIM?LXeGrF11@4d+80DI|F)70%MZGYn-)KGe5 zP0R`f38CC*%5UiI4LDo zS9414Z@iJok5=X+M^S6Of8A#^EK?^!`#GrsjZ{2l1m9?MK0E%7|Mg{Rlh*{S(c0Wa z>S}A#>+22ruNvK}1DsvIPR7Qae*kAJp>w+`{j2!G6Moac{@mQ{>VlJGzK%A0sa{^` z9EVZ!fjxm-(8J^LAxF|(yrXQlHeRD}wf_qeP6dI*M8;k4tcz=%DzpcWvrrNU1@-2Z9gNrHJEXbK{tp0kKFPzas#xaQ(J=kSXwf6=KZh}Sr;3SIF z&VXwc+fK2|pQRAq%F4>E+&*>0F1Xhfu8N;Ob!gD$ao;4X;7q<=9Wq2dHPgtS45~ye zDp%0PanRK6*4b*jym$uabkq8=j3epaqoYH*!&8hgVwet~U_6y>ts|tehRx9l9u5lQ zR*@$4AP$!rf^XzS^d1vRDs5IP#2TD7Ns82}Fx$xo+s1thZB~z;boPH*a(1h*T2VcN z@(e80tqOg7O}Fd>ZjTtAw?~ zr6#;kwI-sy=sdNY-3;S5tF;#Ojoy*j-f0TFAEqBaSBcutvRSFO$JCygt~^PA)v6Ic zI9m!@$k4d^g$s@sT*NaNG15JHK*@{351iLSZdP+VG|uV8GA7=DP@g`H&M4-mDD~*e z64`UTYivB#cQJpcT|qUC=)%0q zV&O~nMZE7|rhl@}N@$Q{kfW=o$JzE_rySAda@?lf`Jebb^){(QZ}`&cxc#z(@lRl$ zlwZejG*)GZXZ0(C7JWFuC*GZJ*;~%x{4X!SF!hOPnK^xpBa6Dy(=2;ci?B%&Q zSM%{ozyasQm>Vx_PH5*y{43jtC|(?Psfz04^~(+-p7r-LUOZd_yj|ta^5fy8dZR@# zn-*}J*$asaqg20onoqCgMb4w<4jL|*;|c6Aba7HGr6x}NcDqmIMG^Ch+Yqo;f%Ce( zpq&Uf8d13m<0O z4k6jH1o#n4+rO_$U45%snTPF2r_qq`NJ*GZQCNf%NJ4Rxz~;c{R)sDjTU83d+hMQM z1j)u>cI^ zbkuZJYP}*rLQdXa`==r?`t9QCsvF?&2CDqp+G*-bwKlJYQ+T3w0KDzJGnShv7D3Ep z3D7#ZMyVwB^s24_o}7;zgYk^7K7IP6Ty2g8C?oXk1biML0RhnFbJg%vF);8rtR0c0 z66?-mTGGI}ztSK-Tx_XOiN3a>VXq_jfY<%D$H|6gNLHzQ@sZ|q=QLu`20aK|OrtT@ zAKw%lp_DF=2=ne(D7ypJ`K*91E>4GdX#6o#Bvc@dPQx0&o8u)~T3hpaT_LTn<|M5 ze@M^^!DJMGsTQL?)yNiq2ZzV0;L4+;qr=o_zc(q;FIUT>T5WE^AmtN$J^w3LKw`=S z@|(eT`Tt4 zXt4-a9#`6D0-&=%p;3;mXKiFoz}VMS(A>y@XNSY{k-IOB-iiVIhZ5q5t@rKuhC6`% zE``+L{3(UVC)3;}OWuaBwQW%ri3{#rgumy^j-}TM%a_j;*Fn28+=}06_n9!;PD-fi zlGNUHfjh8jyq8bP0#EaU)}D#H=r?vaaTT_+azfjmqZY^t?=Y-1J{Feq%UKCmh<$nD zvRR7_`CtG!QSb#e)$@^~-tj1`%4}*^S*lGgiPa)uUmb;ngd|NSU7%d=^R=P7o7?in zM)m?Z1qC!fvN`~PAp5CGw=)Qq$dNldG;+TSkwSC= zv&pw)E=SX`EF%Ee8qZdmfRQw66h2&{A7Q2Py3b}~Pj$j>$)@X)<`VR1y`7>x2haM^x7NFkbOZ!AZKZkU6t5;$}!}e)@I1e3ijR$~h5rXJO zp1()DHkY*J$rvWyEry|+P%&Q+HJRFRs%A~W_W;I$a;iq~xQh9NsEGsj*eGd-Vy(DQ zS(UKT&oCnZDzmn};|wl-%auY|?=y|tY#b>InmIAYyOxjoA4u8%7-jy_U;Yqh{#0oG zWd+YN_`eyZevehZ%l_vIe&g)FnD##__>U&me^J4ICB*;VJ^FxR*;2q{i;aSUQtEV~ z>uvMFXlMY56;OrIs1yPqMFE(v4@r~;^llMdU1CoAU47<-Fgz}OY#8tcAZ9|3q+2f3 zvpXK*0&fNkkAOn;EVlr|V0T*v!1T+5|3J>x%RgUupD;2qLc_oaXloO~20yC>P$kW` z1^i}LCu`m8Hmk3HD`tJfbVp+b-4H}7HP58kzqFLW;=0xQjcl`)YE5kx*>arNeYVf0;5};agkE z`b|EnGQF=z{qV5>rtawK8jX_xreFbKUgzQB*vxpZ+;7iyEC|UyDdubz>jAyn=_FeljY6SgqyMMGipWS+PE~){i%7iI&}nPNDUBNcauS&3*SZ7`Zy4*AZ!;GQ zwB=U@zgT4f`%?C9rS(ob?$OAkwfci3tKVYB6rj<}*asd$nngD2rAfrm?PC(ERNT)m zr1coQpO=WC-8!9$Pe?Fa_!A`0>~q&0Za_Q0ecxvrQlO)&H)dcR?OmbKFtRS?672q3 zjCVuQkdau8G}TbDgS>VL1YBGtP;!1$>j)Q=`9Tl)jCs;&cgD9Zm^y@AnRH z)BO?B#ycouvEZ=)a0Q5oUAOyd6E0BE6(x&OkmXIAWMTgL08(P(m0d{U2oU<9JCA$W&@3RC573qQ^=MHfESNpP^Ebap{{ZB0K z3`NHF=&2{&sfURsbzP^Y#oQV}FCwEN8C_)P;cyujjWs`SOpNqJ#9Go-g96tU^OEY7 z05B;mZVEHMFuzg%bX*2STeWsl6JdRYpgQi1)$}G@=#2HC%yCQc92b*rEz?M?WBI)1eXmF`&BDe=g?-zYR(K)nPxXT_ z`^qpcg#xghF`aE!Zi9;rS~L|YH&4^?z6ui*^qw5O*8dfMGn8R;_l(P?-z-=V(tZFBgP+H#D3C)#G z?J+~zOJd?pn#winoH{YTsZZTTLJGKuly3Q!8^?C*A0Cq`Dw#rB(`jUPs(Y|U7Ip;H z7npri$|z?op9*_?y3N6KpS!>%Q>Q9vQ7>V$HBv8#xk{fj)oWETiC1d=Sj0?SW0==_ z-sM*IAw!9Xu#~<20^cWZLyK^~iI+l)60?x)uyi`N!FGk4gp|Bh&|)XZ{^{7}e8;d# zKy|KD?tLBuHyX_O7e1GBS$ez#A7Yn_IEn|i#)Doxe@4$P61Osg@YeI&00b{_;U;@d zDDu8fKkh$PO)Tc`e!!gHf<-V1)vLRNN`~R5pTj?QDO?29mSDL@B#~L`9^odZPF)> zPVGg@qS%1UL`b%@G{F2b*5(!r=122(YEQPlT;Ja4weDU(gXQqF+?!z{GNJSU+I=j? zM+%-lP9EW&qLKf_??1osGL?=CYI`hOdWz%P@Cf;!3K5rsNYE|Z>wV=(HyydYX;ysD zaPQsjDX)eg-YZ?%e1+Mt7iG|*o+CeX1CnZlToLr}UUiM`(P!v=OxwZSp1)@yAt&t} z)_q%y8IYo(IUFgi1cCz=B4$(PJEOV%ogC=o?=&3X^mFyTvIk4YdAf1*>deE&8YJVr z3L6Rhm^79vu{}2E;5#sg_sYEIe8;rz1cH%IqbqRQY&H!$om95QMkNh^;IGLqcj~iM zcRnY48UVcFFMQvSFAu?pf1%>#u*UNict;Vxr1Y4BL*8hE%WQwY@PuBWg6FvdY30_) zfZmdF5BtK)W0!Lop56*FGAeqPyp-hL{R~+%UlXp$&v*5z;Zq}}qNS(V(-D1Q4c}1H zcUS_e0G8ca3(Huf`HEc24D&h+nQDP_xD#HCCjCaSt6i=y$<=TT)kUyuj*dlh&fgDx z&5e>$dd*|-Y|uxl9&LCmc{`rMG(^i#9-VI2vD#b|`@fUfUR$EQ?I9m~tK?1fi%&2? z)nK$OOw)NAY2)2H4j6xg{mxBy@+uvAB}5x`L2s+9kx^0v*HrVhv3I=l+|KWSIa#6| zNye2T9Of5{4XSrth;u{vac8rY#K~d=w+=C%&vu~A??J+T_aTYM2Qtne+mR{(-+}C8 zXx!XA8flVh=Lq3(M_(hV6du~)@hG31=AG*BH3W-hPjFv8Q&kdj(*_;f!a=oCb82p+L>cHUx4 zxDuhAn_X|_%y%W)`!RJS zaye}@HJzCrGA6?tTqqHAc%YWogzXqS`;0+uxw-X{lHCBZ1uVJrQ|)8}KijZSOHZOU zp7C#`)0*TyfPKxB=oEtYH8|Rg9uf@lWVc$j&n>Meza^ZVWARFXQ4i{r9ajK04C6uO`zE{o9HK49k!3dAXJf{d49^RG5jivg5 z&uYEQ?Mu*L5R)xxw!BH^I}w|AJAV{>xV32~9}+h+GF_>+yR%|8ozM(AJZXO-?^Fm; zv-*Rm(v1lZY56wt-pG{f>`hlZ;M|u!nB9zqYhRXEjZ#e{ZT*e3)_i&vn7_=C8PO)OX>Ff*15))dMHrq)zB<=`3@H{kby$Qg}gev6w!^A3=KGkf}JGE zzm@4(ELBQ1{~~Ozb9Ad%T<3n1b4r%_miji5ru# zu1pmZHb*58zQ4}`usjO?c4CLr-NIS0na?2n#Y9c!q?n4HNvjV?U+bop&p?O|$fq)s zW|q%I{tWo4yYQwf1P{;tMohiXL2IPxmgXP%ne;3L%Xh{g`h~o!2%){hcIf+lYB+p0O;O=?#?P zP%0g{tLbEQ1su*Fmh6i^E!k0%R^hFgBYHi?GdXUjH>(YjW;XY6smRLZ(V({>e=yQ^ z!2b_&D?4>s%axcCJg+QsYLZt<=GJ!r4;1MeRfCEjMO2lOAuz3Ze&`EdUx`Ug9#F(H zG>~c*pacx=N%fNQWT2)meN)5=v%CJO33oJt6~(6>MjjX#&t>8RT5g#v<;W2^?;aY& z`So~km96bj#%(d(w<2+MvNKAtvou?~6|k>hEWaf@lYi_`!k>p4z1iT>u=Nuz85%yJ zrmJmd&EWcaCU~WU_i*~f!gD^#wcFh=dW@Hx1+F>wJ=>C)oeZ;mqn=m<&4i6zo=Th2 zrAm?_>=CT*8Bs|%IX4f_cvpb9Mr!KHVX~)8wusHl54ZbUy+t%?;@PE5y&AhI9Fxgy zq3N7QC@IwT>Qgn9fWt}nR0;COl%vtjzR-A-Y~JbyMNp?rh&@#nU-x8aYJZgnd0Pz* zZ%nFD7+!`Xj^klb=f=mQZxyu|=2zJLWqaW=Rd&yYactI`&AW-?S{cnBVaiXG3mglu zDsJcHBIIqEZ>~Z

L@$TE-Nb!bZTBCPxQbMVoyvFW72(l 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 DBV_(8 literal 0 HcmV?d00001 From 14ee2f23ea4963533989794ce8ab7c907b0a6c01 Mon Sep 17 00:00:00 2001 From: yusijia <694915223@qq.com> Date: Thu, 16 Mar 2017 21:00:15 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=B8=80=E4=BA=9B=E6=80=BB=E7=BB=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 主要总结了下设计模式的运用 --- ...00\344\272\233\346\200\273\347\273\223.md" | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 "src+/\344\270\200\344\272\233\346\200\273\347\273\223.md" diff --git "a/src+/\344\270\200\344\272\233\346\200\273\347\273\223.md" "b/src+/\344\270\200\344\272\233\346\200\273\347\273\223.md" new file mode 100644 index 0000000..e41b5d8 --- /dev/null +++ "b/src+/\344\270\200\344\272\233\346\200\273\347\273\223.md" @@ -0,0 +1,26 @@ +## 一些总结: + +- 一层一层的封装,合理运用组合、继承类或接口来赋予、增强类的相应功能 + +- **接口的运用**: + - 通过暴露接口方法来进行非侵入式嵌入(例如:暴露BeanPostProcessor接口,实现该接口的类会优先于普通bean的实例化并可在bean实例化前对bean做一些初始化操作,例:aop织入) + - BeanFactoryAware接口暴露了获取beanFactory的能力,继承该接口的类拥有操作beanFactory的能力,也就能具体的操作bean了。 + +- **模板方法模式以及hook方法的应用**: +  例如: 在AbstractBeanFactory中规范了bean的加载,实例化,初始化,获取的过程。AutowireCapableBeanFactory里实现了hook方法(applyPropertyValues方法),该方法在AbstractBeanFactory#initializeBean方法中调用,AbstractBeanFactory中有默认的hook方法空实现。 + +- **工厂方法模式的应用**:例如:BeanFactory#getBean,由子类决定怎样去获取bean并在获取时进行相关操作。工厂方法把实例化推迟到子类。 + +- **外观(门面)模式的运用**:ClassPathXmlApplicationContext对 Resouce 、 BeanFactory、BeanDefinition +进行了功能的封装,解决 根据地址获取资源通过 IoC 容器注册bean定义并实例化,初始化bean的问题,并提供简单运用他们的方法。 + +- **代理模式的运用**: + - 通过jdk的动态代理:jdk的动态代理是基于接口的,必须实现了某一个或多个任意接口才可以被代理,并且只有这些接口中的方法会被代理。 + - 通过cglib动态代理:cglib是针对类来实现代理的,他的原理是对指定的目标类生成一个子类,并覆盖其中的方法实现增强,但因为采用的是继承,所以不能对final修饰的类进行代理。 + +- **单例模式的运用**: + - tiny-spring默认是单例bean,在AbstractApplicationContext#refresh里注册bean定义,初始化后,默认用单例形式实例化bean:preInstantiateSingletons方法里获取beanDefinition的name后通过getBean(name)方法实例化bean,下次再getBean(name)时会先检查该name的beanDefinition里的bean是否已经实例化,如果已经实例化了,则返回那个bean的引用而不是再实例化一个新的bean返回 + - 标准单例模式中一般的实现方式是:第一次通过getInstance(双重检查)实例化该类的对象并保存,下次再getInstance时返回该对象。 + +- **策略模式**: +  这里有个想法,看ClassPathXMLApplicationContext构造方法可以知道是默认用自动装配的策略,在这里可以另外自己写个类继承AbstractBeanFactory,重写applyPropertyValues方法实现装配策略,在初始化的时候就可以选择不同的装配策略了。 \ No newline at end of file From 642a173ab0f146d994645737923b34d35605ef00 Mon Sep 17 00:00:00 2001 From: "yihua.huang" Date: Mon, 12 Feb 2018 21:10:33 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=8E=A8=E5=B9=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 97fb40f..c35abc0 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,15 @@ tiny-spring `tiny-spring`是逐步进行构建的,里程碑版本我都使用了git tag来管理。例如,最开始的tag是`step-1-container-register-and-get`,那么可以使用 git checkout step-1-container-register-and-get - + 来获得这一版本。版本历史见[`changelog.md`](https://github.com/code4craft/tiny-spring/blob/master/changelog.md)。 [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/code4craft/tiny-spring/trend.png)](https://bitdeli.com/free "Bitdeli Badge") +## 下面是推广 + +如果觉得代码理解有难度的,可以报名@方老司 的视频教程: + +[60分钟徒手撸出Spring框架:土法造炮篇](https://segmentfault.com/l/1500000013061317?d=be83d672744f2f15b77bb40795505e4b) + +[60分钟徒手撸出Spring框架:高仿版](https://segmentfault.com/l/1500000013110630?d=a09ac8198372f552dc68c572b2b38664)