我可以在同一方法中混合使用两个春季声明性功能,例如@Cacheable和@Transactional吗?

时间:2019-05-10 08:17:26

标签: java spring

我需要通过使用声明性Spring机制使我的服务方法既可缓存又具有事务支持功能。我只想知道Spring是否能够解决方法调用的多个代理而没有任何不可接受的副作用。

@Service
public class ServiceImpl implement Service {

    @Autowired
    private MyDao dao;

    @Override
    @Cacheable(value = "cacheName", sync = true)
    @Transactional(readOnly = true)
    public Result produceResult(String arg1, Integer arg2, Integer arg3) {
        Object obj = dao.getSomething(arg1, arg2);
        ...
        Result res = dao.getResult(obj, arg2, ...);

        result res;    
    }

    ...
} 

它工作正常吗?

0 个答案:

没有答案