答复: 我的struts2配置,间接实现零配置
protected String doIntercept(ActionInvocation invocation) throws Exception {String result = null;PlatformTransactionManager transactionManager = (PlatformTransactionManager) BeanLoader.getBean("transactionManager");DefaultTransactionDefinition def = new DefaultTransactionDefinition();def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);def.setReadOnly(false);TransactionStatus transactionStatus = transactionManager.getTransaction(def);try {result = invocation.invoke();transactionManager.commit(transactionStatus);}catch (Exception e) {transactionManager.rollback(transactionStatus);logger.error("action error,rollback transaction.");throw e;}return result;}
第二、定义用于事务的拦截器
<interceptor name="transactionInterceptor" class="TransactionInterceptor"><param name="includeMethodsPrefix">act,deal</param></interceptor>
includeMethodsPrefix参数用于定义以这些字符串开头的方法都采用事务控制。
第三、配置拦截器到Action上,这个就不用写了。