『互联网架构』软件架构-spring源码之spring AOP(

2019-02-18  本文已影响4人  IT人故事会

原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
原文链接地址:『互联网架构』软件架构-spring源码之spring AOP(十)

spring是一个技术体系,之前说过spring的ioc,学习底层的意义,为的是以后灵活进行定制的时候,学的底层知识就可以用了。之前我记得在开发的时候,log日志都是debug,到线上的时候为了不影响性能就改成info,但是如果是线上出问题了,需要关闭项目更改为debug,查看到底是怎么回事,其实如果学习了aop,里面有个开关的功能,可以动态的不更改项目状态的情况下,动态的让日志级别发生改变,灵活的追踪项目里面的存在的问题。

AOP

当需要批量的定义程序逻辑,批量更改程序的时候,其实里面有很多坑,会让程序本身很复杂。有些人喜欢在AOP里面增加缓存,带来便利的同时也带来了复杂性。当代码变的扩展性强的时候,复杂性也变的非常强了。尤其是新手,慎重选择,尤其是负责性和扩展性上,做好真别。别让方案过于复杂。要用简单的方案实现复杂的问题,而不是是复杂的方案实现简单的问题。开发多年的领悟。

切入的具体逻辑载体。

描述了aop具体包括哪些通知,具体切入到哪些方法。

目标对象代理实现。

  1. java proxy
  2. cglib proxy
  1. AopProxyBeanFactory
  2. AopProxy

流程梳理:首先会写一个aop拦截的逻辑组件,到底要拦截什么,具体的业务是什么,由AOP定义组件告诉我具体有哪些通知和拦截的组件,把它插入到哪些方法里面。具体的哪些方法执行是通过调用执行组件。由其他里面的aopbeanfactroy生成对应的aopproxy,用户拿到的就是业务服务类,达到的目的就是透明化。透明化的含义就是对用户来说调用者来说不需要关心这些,通过代理的方式把中间的方式不展示给用户来,就是透明化。AOP说实在的要不IOC复杂的很多。

AOP胡概念

PS:AOP目前我用到的几个场景,就是日志管理,事务控制,权限管理 等几个。

上一篇下一篇

猜你喜欢

热点阅读