我正在开发一个Web项目,其中一个要求是在数据库中的每个操作之前调用一些存储过程(用于init / debug / audit)。 我的服务层使用Spring来管理事务,这意味着它们被明确分隔。
我的想法是通过注释添加代理类来调用这些SP。 我阅读了很多博客,关于编写注释的文章,AOP,AspectJ,代理等等,但我不了解如何根据自己的需要使用它。
我的一个问题是如何确保Spring代理会调用我的代理(在启动事务之后)?另一个是如何触发我自己的代理的创建? 任何精确度都会受到欢迎,因为到目前为止,我理解主要想法,但我不清楚我是如何真正做到的。
答案 0 :(得分:0)
我认为你应该首先阅读更多关于AOP和AspectJ的内容,我可以向你推荐着名的“Spring in Action”一书中的“Aspect Oriented Spring”一章。它会回答你的所有问题。
如何确保我的代理将被Spring代理调用(之后 它开始了交易)?
嗯,你自己不这样做,Spring确保根据你配置它们的方式调用你的建议。
如何触发创建自己的代理?
我不确定我是否理解这个问题,但是Spring需要代理才能执行AOP,因此您不必自己触发任何代理创建。
答案 1 :(得分:0)
您可以使用Spring建议来呼叫SP。使用建议命令在同一事务中运行SP。
<tx:annotation-driven/>
可以获取订单属性,您可以通过该属性控制首先应用的代理。
建议订购
最高优先级建议首先“在路上”(因此给出两条之前的建议,优先级最高的建议首先运行)。从连接点“出路”,最高优先级建议最后运行(因此,给出两条后建议,具有最高优先级的建议将运行第二)。
答案 2 :(得分:0)
最后,我成功实施了它,我描述了here
的方式希望它会有所帮助...