SSH中关于事务以及ACTION设计。
在SSH开发中,假设场景为登录。
登录需要做的事情如下:
1、获得Auth授权对象
2、查看数据库的sys_auth表是否有该auth对象对应的数据,没有就INSERT一个。
3、判断上下文中是否有授权对象,没有则存一个。
4、调用远程服务,根据用户AUTH对象获得该用户订购的服务列表,并判断出用户订购产品的级别。
5、把用户订购级别和用户名存入SESSION。
现在有两种设计,我不知道哪种是对的。
设计一:
以上5个步骤都写在一个Service的一个login方法中,如果步骤2异常,则3、4、5都不执行了,感觉好处是这些步骤都是一个业务的整体,当成了一个事务在执行。
但这样就导致service层的login方法参数列表是login(ServletContext application,HttpSession session),感觉把service层给耦合了J2EE的API。
try {
步骤1
步骤2
步骤3
步骤4
步骤5
} catch (Exception e) {
e.printStackTrace();
}