TransactionManager、@TransactionScoped源码翻译

来源:互联网 发布:2016年淘宝卖家下载 编辑:程序博客网 时间:2024/04/30 00:26

package javax.transaction;import java.lang.IllegalStateException;import java.lang.SecurityException;/** * 目的:定义服务器管理事务的方法 * @author TCM * @create 2017年11月1日下午1:21:33 */public interface TransactionManager {    //当前线程创建一个事务    public void begin() throws NotSupportedException, SystemException;    //事务提交。该方法完成后,当前线程与事务无关    public void commit() throws RollbackException,HeuristicMixedException, HeuristicRollbackException, SecurityException,IllegalStateException, SystemException;    //获取事务的状态    public int getStatus() throws SystemException;    //获取事务Transaction对象    public Transaction getTransaction() throws SystemException;    //恢复当前线程的事务。该方法执行后,线程与事务上下文相关联    public void resume(Transaction tobj)            throws InvalidTransactionException, IllegalStateException,            SystemException;    //回滚事务    public void rollback() throws IllegalStateException, SecurityException,                            SystemException;    //修改线程中的事务,唯一可能性是事务回滚。    public void setRollbackOnly() throws IllegalStateException, SystemException;    //设置事务超时时间,单位:秒    //没有调用该方法,有默认值;若设置为0,则默认;为负数,抛出异常    public void setTransactionTimeout(int seconds) throws SystemException;    //获取当前线程中的暂停事务。    //若没有暂停事务,则返回null;该方法执行后,线程与事务无关。    public Transaction suspend() throws SystemException;}

package javax.transaction;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.Target;import javax.enterprise.context.NormalScope;/** * 目的:注解@TransactionScoped,事务使用范围 *  * <p>@TransactionScoped注解定义了bean实例在当前激活的JTA事务内的生命周期。 * 该注解并不影响非上下文对bean的引用。 *  * <p>UserTransaction.getStatus()或TransactionManager.getStatus() * 返回以下的状态时,事务作用域将激活: * Status.STATUS_ACTIVE; * Status.STATUS_MARKED_ROLLBACK * Status.STATUS_PREPARED * Status.STATUS_UNKNOWN * Status.STATUS_PREPARING * Status.STATUS_COMMITTING * Status.STATUS_ROLLING_BACK *  * <p>@TransactionScoped注解与事务上下文、生命周期等相关联,并没有与“active”关联。 * 该注解的对象与当前激活JTA事务相关联,并在其内使用这个对象。这个关联维持到事务的终止或重新恢复 * 或Synchronization.beforeCompletion()回调。在一个未定义的上下文中调用 * Synchronization.afterCompletion()方法。JTA事务的开始和完成(如:UserTransaction * ,事务拦截器等等)都与之无关。所使用的上下文引用在不同JTA事务中也是不同的。上下文的引用更多 * 细节请参考CDI规范。若果事务上下文没有激活就使用该注解的对象,则抛出异常 * javax.enterprise.context.ContextNotActiveException。 * @author TCM * @create 2017年10月31日下午2:17:24 * @since  JTA1.2 */@Retention(java.lang.annotation.RetentionPolicy.RUNTIME)@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})@NormalScope(passivating=true)public @interface TransactionScoped {}

原创粉丝点击