上篇讲述了Spring的IOC原理和使用,本篇讲述Spring对AOP的支持。首先回顾一下Spring IOC容器,用一种通俗的方式理解Spring的IOC,也就是家里要安装灯泡,去网上买,我们只需要去下订单就(ApplicationContext.xml)可以了,无需关心工厂是如何加工的,你想要灯泡发红的光就直接在选择的时候选择红光,如果想要发黄色光的就直接选择发黄色光的灯牌,之后生成订单后会有派件人员直接派送到你的家门口,不需要你自己创建灯泡工厂去生产(new)灯泡。
那什么是Spring的AOP呢?
我们可以理解为你想要给灯安装一个灯罩,可以直接把灯罩起来,而这个灯罩相对于灯本身来说没有任何的关系,是独立存在的,你只要加上去就可以。对于这个灯罩来说,就是从AOP的角度去分析了。
那究竟什么是Spring的IOC容器呢?
在软件业,AOP是AspectOriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。也可以意为面向行为编程,是函数式编程的一种衍生范型。
我们以一个例子来说明什么是AOP。
例如我们在用户增删改查上添加一个安全性检查,这样无论是任何操作之前都要进行安全性检查。
UserManager.java接口代码如下所示。
public interface UserManager {
public void addUser(String name,String password);
public void delUser(int userId);
public String findUserById(int userId);
public void modifyUser(int userId,String username,String password);
}
UserManagerImpl.java实现接口代码如下所示。