我有一个映射Web服务的端点,该端点用于在dabatabase中插入一些关键字:
@Transactional(readOnly = false,isolation= Isolation.SERIALIZABLE)
public Source saveKW(...).
输入是一个请求。
我想在方法上添加一个拦截器以验证参数。
这将从数据库读取一些值。
我希望这个拦截器在为端点声明的事务中嵌入(或相反)。换句话说,我希望他们参与同一笔交易。
理想情况下,我正在寻找带有注释的类似内容:
@Transactional(readOnly = false,isolation= Isolation.SERIALIZABLE)
@validator("KeyWordValidaor.class")
public Source saveKW(...)
其中,
KeyWordValidaor
是用于验证参数的类。您是否有任何想法或简短示例可以以这种方式或以其他实际方式实现?
最佳答案
验证必须在事务内部,因为它正在查询数据库以测试约束(例如)。
我已经找到了解决方案。我正在使用spring aop&我通过地图从spring上下文动态加载适当的验证器。 (预先提供未知的unknow bean名称的非常未知的功能!)。
由于order属性,它位于事务内部。