<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-all</artifactId> <version>2.7.3</version> </dependency> public interface OrderService { @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT, rollbackFor = Exception.class) Order createOrder(OrderDto orderDto); } @Service public class OrderServiceImpl implements OrderService { @Autowired private InventoryService inventoryService; @Autowired private UserService userService; @Override public Order createOrder(OrderDto orderDto) { inventoryService.reserve(orderDto.getProductId(), orderDto.getQuantity()); userService.charge(orderDto.getUserId(), orderDto.getAmount()); Order order = orderMapper.create(orderDto); return order; } } <dubbo:protocol name="dubbo" port="20880" /> <dubbo:provider> <dubbo:service filter="dubboTransactionFilter" /> </dubbo:provider> <dubbo:reference interface="com.example.OrderService" id="orderService" /> <dubbo:consumer> <dubbo:reference filter="dubboTransactionFilter" /> </dubbo:consumer> <bean id="transactionManager" class="com.atomikos.icatch.jta.UserTransactionManager"> <property name="forceShutdown" value="false" /> </bean> <bean id="userTransaction" class="com.atomikos.icatch.jta.UserTransactionImp"> <property name="transactionTimeout" value="300" /> </bean> @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:spring.xml"}) public class OrderServiceTest { @Autowired private OrderService orderService; @Test public void testCreateOrder() { OrderDto orderDto = new OrderDto(); Order order = orderService.createOrder(orderDto); } }


上一篇:
下一篇:
切换中文