保存成功
保存失败,请重试
提交成功
杨老师

杨老师

架构师
十几年程序开发经验,从最初的通信大厂到互联网大厂都呆过,擅长领域从从c,c++的通信协议开发到java后端,中间件研发,现为一编程培训师,教育的目的是引发更多的思考。...更多
文章2

一文带你彻底理解 Spring AOP

翻开编程的历史可以看到从最初的面向过程编程 ,也就是将任务分成一个个函数来实现各个步骤,最后由主函数依次调用这些函数来实现这个任务。到 OOP(面向对象编程),即从任务中抽取成一个个对象,将功能封装到不同的对象中,让对象间相互配合完成任务,从代码角度就是将功能分散到不同类的方法中,通过 OOP 的继承和多态等特性减少代码复杂度,增加可重用性。 但是当遇到需要在所有的类方法中都需要打印日志或者在所有的数据库修改中都要开启事务这种情况时就会导致在众多的对象类中出现大量的冗余代码,也许有人会说可以把这部分操作抽取出来单独作为一个类,然后再在各个类的方法中调用这个类方法,但这么做也会导致本来独立的各个类之间由于调用共同的一个类形成紧耦合。 那有没有一种方法能让我们不修改各个类里的逻辑,而在运行时可以动态的将代码切入到类的指定方法或者位置上呢,答案就是 AOP。AOP 也是一种编程范式,基于 OOP 延伸出来的编程思想,也是对 OOP 的延续和补充,如设计模式中的装饰器模式、代理模式就是基于 AOP 思想。 AOP 要解决的是问题就是将核心业务代码与辅助类型业务(比如:日志记录、权限校验、异常处理、事务控制)代码分离出来,提高模块化,降低代码耦合度,使职责更单一。 在本场 Chat 中,会讲到如下内容: 1. AOP 的相关概念 2. 从字节码,静态代理,动态代理讲到 Spring AOP 的实现方式 3. 最后通过一个笔者以前在公司实际开发的例子,即在一个二方包里以 Spring Boot 下自定义注解+ AOP 的方式,实现对各个微服务业务模块接口的角色权限的检查。 适用于对所有对 AOP 感兴趣的开发者。
185 订阅

由头条面试时的两道算法题引起的思考

金秋国庆假日后就是明年毕业的程序员莘莘学子们准备找工作的时候了,毕竟多数情况下毕业后的第一份工作往往决定人的一生,对于面对公司的 show me the code 的测试,如何利于不败之地,尤其是如何在各大顶尖 IT 公司面对如过江之鲫的毕业生时费劲脑汁设计的择优面试中斩得 offer,这时候算法就显得尤其重要了。往往伴随着面试官的“来,做两个题”的提议中,算法 coding 开始了。 本 Chat 通过两道实际的头条算法面试题的解题思维和方法,让阅读者扩宽解题思维,掌握部分解题模型,主要分为以下几个大的方面。 1. 两个算法题目的呈现和分析 2. 解题的思路和代码分析 3. 总结算法思维模型和应用的推广
152 订阅
微信扫描登录