Springトランザクション@Transactional注記による動的エージェントの失効問題
2073 ワード
質問説明:@Transactional注釈を使用してトランザクションを開くサービスがあります.「spring+mybatis注釈構成トランザクション失効問題」の説明を参照してください.もともと私はエージェント反射呼び出しを使用してこのサービスの2つの方法(インタフェース以外の方法、他のインタフェースの方法が使いやすい)を呼び出しましたが、トランザクション注釈を使用しない前は使いやすく、トランザクションを追加した後は使いにくいです.
サービスクラスの一部のコードは次のとおりです.
サービスクラスの一部のコードは次のとおりです.
/**
*
*
*
*/
@Transactional
@Service("payBookService")
public class PayBookService extends CommonService implements ICommonService,IPayBookService {
private static Logger logger = Logger.getLogger(PayBookService.class);
@Resource(name = "payBookMapper")
private PayBookMapper payBookMapper;
@Override
public List
サービスを呼び出すコードは次のとおりです.private List
トランザクション・ノートはクラス・ベースの動的エージェントを無効にし、インタフェース・ベースのエージェントしか使用できないため、インタフェースIPayBookServiceを追加して呼び出せない2つのメソッドを追加し、サービスを実装すればよいimport java.util.List;
import java.util.Map;
public interface IPayBookService {
/**
*
* @param fsdatalist
* @return
*/
public Map updateFSDataConfirm(List> fsdatalist);
/**
*
* @param fsdatalist
* @return
*/
public Map selectVilidateQuery(List> fsdatalist);
}
私はただspringのこれらの現象を知っていて、もしどの友达がその中の原理を知っているならば、教えてあげることを惜しまないでください