【发布时间】:2009-10-08 18:13:49
【问题描述】:
考虑一组具有类似方法的 DOA
public void addObject(Long sessionId, Long clientId, Dom obj){...}
现在每个域 pojo (Dom) 都有一个 sessionId 属性,并且对于域对象上的每次插入、更新或删除,sessionId 必须与 setSessionId(Long sessionId) 一起传递,这样我们就可以知道谁做了什么。但这似乎跨越了我们和我认为 AOP 将是在 @Before(JoinPoint) 或 @Around(ProceedingJoinPoint) 建议中插入 sessionId 的所有数据访问内容的好工具。这真的可行吗? DAO 大多基于 Hibernate,并带有一些 Spring StoredProcedure。
【问题讨论】:
-
我很困惑...如果sessionId是Dom对象的一部分,为什么它也是DAo方法中的一个参数?
-
哎呀我的错误,但要澄清 sessionId 是在代码中手动(以编程方式)设置的,但上面的方法是一个建议的解决方案,其中 AOP 可以插入 sessionId 而无需开发人员处理它。方法签名不正确,因为需要将某些内容传递给 sessionId 的方法。该建议将从实用程序代码中检索 sessionId 并插入它。
标签: java aop spring-aop