ejb有很好的事务支持,spring也提供了轻量级支持。我这几年接触的大型的应用软件,正好都各自使用上了。这种支持下开发,开发人员不用关心事务,只要知道是一次后台调用都会自动有事务保护。实践证明很方便有效!
但是对于业务锁,还都是需要在代码中实现,我认为也应该像事务控制一样抽象出来,通过拦截模式配置实现。业务锁和事务还不同,业务锁有很多个,一次后台调用可能申明多个不同的业务锁,这样即使配置,配置信息也会很多,因此我认为最好能通过数据库管理起来。
假设把后台的响应对象称为Command,可以在一个数据表中维护系统中有多少Command,每个Command的实现类路径配置进去。各个Command的各个方法在进入前应该受到什么样的/什么级别的事务保护?应该争取哪些业务锁?调用后应该释放哪些业务锁?这些信息维护到数据表中便于查询,管理。而同时各模块的业务开发者不需要关心这些信息,这些信息可以在开发结束后由系统架构人员根据系统情况维护进去,岂不妙哉?呵呵
但是对于业务锁,还都是需要在代码中实现,我认为也应该像事务控制一样抽象出来,通过拦截模式配置实现。业务锁和事务还不同,业务锁有很多个,一次后台调用可能申明多个不同的业务锁,这样即使配置,配置信息也会很多,因此我认为最好能通过数据库管理起来。
假设把后台的响应对象称为Command,可以在一个数据表中维护系统中有多少Command,每个Command的实现类路径配置进去。各个Command的各个方法在进入前应该受到什么样的/什么级别的事务保护?应该争取哪些业务锁?调用后应该释放哪些业务锁?这些信息维护到数据表中便于查询,管理。而同时各模块的业务开发者不需要关心这些信息,这些信息可以在开发结束后由系统架构人员根据系统情况维护进去,岂不妙哉?呵呵