通知

Spring AOP动态代理-通知

时光毁灭记忆、已成空白 提交于 2020-03-01 03:50:29
在上一篇中,我们用JDK动态代理和CgLib实现了例子中的业务逻辑。那么如果用Spring,如何实现呢? 上一篇: http://my.oschina.net/lfy2008/blog/663999 我们依然有上一章的原材料: 业务逻辑接口:TakingTrain 实现类:TakingTrainImpl 增强的横切逻辑:CheckTicket spring中的相关概念 增强的横切逻辑:Advice 增强类型可以分为: 前置增强:BeforeAdvice 后置增强:AfterRunningAdvice 环绕增强:MethodInterceptor 异常抛出增强:ThrowsAdvice(哈哈,现在是不是可以自己用它来控制事物) 引介增强:IntroductionInterceptor CheckTicket的改造: 我们知道,CheckTicket中的方法调是在在TakingTrain的方法之前。那么,我们可以让CheckTicket实现前置增强的接口: public class CheckTicketAdvice implements MethodBeforeAdvice{ @Override public void before(Method method, Object[] args, Object target) throws Throwable { System.out

细说KVO和Notification

余生颓废 提交于 2020-01-07 10:34:42
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 做iOS开发已经不短时间了,忙于项目,遇见问题,就去Google,忘记了积累,最近深知其中的危害,深深体会到 经验不在于年限而在于积累 这个道理。 从遇见的问题说起,想实现时刻监控UITextField有无文本这样一个功能,听起来很简单,感觉做起来也很容易,但就是这么个简单的问题,让我花费了很长时间,很是懊恼,决定重新审视下自己,整理下这方面的知识,来提高自己!好了废话少说,进入正题! 实现功能 监控 UITextField是否有输入文本 从而实现按钮是否可以点击 解决方案 Notification 代码实现 //文本框 UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(20, 100, 280, 50)]; textField.tag = 888; [textField setClearButtonMode:UITextFieldViewModeWhileEditing]; [textField setContentVerticalAlignment:UIControlContentVerticalAlignmentCenter]; textField.layer.borderWidth = 0.5f; /