最近我使用Spring3.1在事件驱动的架构中升级了我的应用程序工作
我很想知道你在想什么:
在每个类中都有一个DAO实例,需要在DB中插入/更新/ etc记录。(常规方式)
我应该向DAO发送消息(通过jms / channels /等),消息的内容将是我应该做的指示(在数据库中插入/更新/ etc记录)
2号方式如何以松散的耦合方式表现出色?
也许这有点过分了?
欢迎提出这个或任何其他建议或建议。
感谢。 射线。
答案 0 :(得分:3)
松耦合并不意味着在应用程序中添加更多具体层(消息队列等)。如果“服务”实现类通过接口与DAO层交互(想到Spring DAO bean注入是一个完美的用例),那么你几乎是在抽象层面上运行。
如果您随后将消息传递给另一个服务的消息传递客户端交换了具体的DAO类注入,那么您的代码将继续像以前一样运行而不会发生重大更改。当然,阻塞/非阻塞方法之间总是存在脱节,但是好的抽象无法解决。我的建议是调查像Guice这样的框架/库来创建应用程序的初始草稿/重构,而不是添加新图层。如果那时候,在某些时候你觉得非阻塞数据库调用是可行的方法,你可以轻松实现它们。将这种逻辑放在首位只会增加技术债务。