spring面向切面编程横向定义dao和service,service定义具体服务,服务通过dao(hibernateTemplate对象)执行hibernateTemplate动作,aop通过反射机制,牺牲性能为代价。
面向切面编程的目标:
1,把横切关注点从业务逻辑中分离出来,独立模块化。
2,在不改变现有代码的基础上,动态的添加功能。举例:一个项目由两个子项目组成,A项目负责业务,B项目负责添加日志、安全、缓存等额外功能,B拿到的是编译好的A项目,这样可以通过aop动态添加功能。