前文介绍了代理模式及实现,但想要实现一个完整的AOP框架还远远不够,接下来我们来分析一下Spring是如何实现AOP的。
1 AOP体系结构
下图AOP联盟定义的AOP体系结构,大致分为从使用到实现的三个层次。整篇文章都将按照这三个层次进行分析
前文介绍了代理模式及实现,但想要实现一个完整的AOP框架还远远不够,接下来我们来分析一下Spring是如何实现AOP的。
下图AOP联盟定义的AOP体系结构,大致分为从使用到实现的三个层次。整篇文章都将按照这三个层次进行分析
Spring AOP 是代理模式的应用,可以使用JDK提供的Proxy类或通过字节码增强来实现。想要知道Spring如何实现AOP就必须要先了解代理模式。
代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问;
使用代理模式创建代理对西安,让代理对象控制某对象的访问,被代理的对象可以是远程对象,创建开销大的对象或需要安全控制的对象–《Head First 设计模式》
前几天面试阿里,面试官问我如何解析HTTP协议,我大概说了一下的思路,他最后得出的结论是我对HTTP协议不了解,让我很受打击。回来看《深入剖析Tomcat》,研究一下Tomcat是如何解析HTTP协议的
tomcat-4.1.12
进行分析,这个版本在2002年发布,可以说是老古董了。不过就学习而言还是很好的工具.tomcat-4.1.12
里提供了默认连接器,但已被标注为过时。在Java EE项目中,权限控制是经常遇到的问题。尤其是在多角色的系统中,权限控制的粒度更细,也更为重要。
系统中有三种角色,教师,管理员,学生,角色权限部分交叉。如果将权限控制的逻辑添加到每一个接口,代码冗杂且不易扩展,维护。我们将权限控制部分单独分离出来,并使用非侵入式的方法为每一个接口添加权限。
最近为认证系统添加了忘记密码功能,使用了Spring提供的邮件API和Ehcache缓存验证码。整个过程还是挺有趣,值得写一下。
Sprin提供了一个强大方便的邮件API,简化了发送邮件的工作。可以发送富文本邮件,添加附件,使用模板渲染邮件内容。推荐看Spring实战(第三版),这里只简单讲一下如何发送富文本邮件,其他的就不细讲了。
Spring邮件API的核心是MailSender
接口,Spring自带JavaMailSenderImpl
实现了MailSender
接口,所以需要将JavaMailSenderImpl
装配到容器中。