2010-03-08 130 views
1

我有一个端点映射其用于在dabatabase插入一些关键字一个web服务:弹簧WS&验证程序拦截

@Transactional(readOnly = false,isolation= Isolation.SERIALIZABLE) 
public Source saveKW(...). 

输入是一个请求。

我想添加一个拦截器的方法,以验证参数。 这个人会从数据库中读取一些值。

我想这个拦截器是EMBED在为端点声明的事务(或相反)。换句话说,我希望他们在同一个交易中。

理想即时寻找这样的事情与注释:

@Transactional(readOnly = false,isolation= Isolation.SERIALIZABLE) 
@validator("KeyWordValidaor.class") 
public Source saveKW(...) 

其中KeyWordValidaor将类验证参数。

你有任何想法或简短的例子来实现这样的方式或以其他真正的方式吗?

+0

验证必须在交易中进行?这听起来像你的输入验证是独立于交易。 – skaffman 2010-03-08 22:29:27

回答

1

验证必须位于事务内部,因为它正在查询数据库以测试约束,例如。 我已经找到了我的解决方案。即时通讯使用弹簧aop &我动态加载合适的验证从春季环境通过地图。 (很有可能是&未知的autorwired未知bean名称的特征!)。 感谢订单属性,它在交易中。