JavaSpring:将其他独立服务组装成单个服务
有两种服务:JavaSpring:将其他独立服务组装成单个服务,java,spring,design-patterns,transactions,spring-transactions,Java,Spring,Design Patterns,Transactions,Spring Transactions,有两种服务: BookService { add(Book book); ... } 及 这两项服务是独立的。现在我想要这个: XService { @Transactional addBook(Book book) { BookService bs; MsgService ms; bs.add(book); ms.add("add a new book" + book); } } 在这种
BookService {
add(Book book);
...
}
及
这两项服务是独立的。现在我想要这个:
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,它调用多个atom服务来完成单个事务功能(或者说是完整的业务逻辑),比如addBook()
以下是我的问题:
1、这种式样可以吗
2,如果是,XService应该在哪一层?X最好的名字是什么
3、XService中的@Transactional有效吗?模式很好,很好。
XService
类/逻辑应该保留在服务/业务层中。至于名称,这取决于您自己,取决于类实际在做什么。如果它正在注册一本书,就称之为注册服务
至于
@Transactional
,请确保您的类带有@Service
或@Component
注释,并且它位于一个包中,由Spring扫描组件。如果您包装的服务也有@Transactional
方法,请确保事务可以传播,也可以不传播,这取决于您的需要。非常感谢,这似乎正是我想要的,我会尝试一下。
XService {
@Transactional
addBook(Book book) {
BookService bs;
MsgService ms;
bs.add(book);
ms.add("add a new book" + book);
}
}