有两种服务:
BookService {
add(Book book);
...
}
和
MsgService {
add(String msg);
...
}
这两个服务是独立的。现在我想要这个:
XService {
@Transactional
addBook(Book book) {
BookService bs;
MsgService ms;
bs.add(book);
ms.add("add a new book" + book);
}
}
在这种模式下,BookService 和 MsgService 就像 atom 服务,使用 Dao 层进行基本的 CRUD 操作,可能是事务性的,但不会暴露给客户端;其中一个是 XService,它调用多个原子服务来完成单个事务功能(或说完整的业务逻辑),例如 addBook()。
这是我的问题:
1、这个图案可以吗?
2、如果有,XService应该在哪一层?X 最好的名字是什么?
3、XService中的@Transactional是否有效?