MVC Java SE 应用程序使用 ActiveMQ 进行通信
Posted
技术标签:
【中文标题】MVC Java SE 应用程序使用 ActiveMQ 进行通信【英文标题】:MVC Java SE Application using ActiveMQ for communication 【发布时间】:2015-03-29 20:47:45 【问题描述】:我正在使用 MVC 模式编写一个没有任何框架(例如 Spring)的 Java 桌面应用程序。 为了将视图组件与控制器分离,我想使用 JMS 框架(例如 ActiveMQ)来进行这些层之间的所有通信(即视图请求和控制器/模型响应),因为我不喜欢每个控制器都必须知道其所有相应的视图组件(包括层次结构)以接收和响应视图请求。 这样视图组件仍然不知道控制器(这是正常的),控制器现在也不需要知道它的视图组件,因为所有消息都将通过主题通道处理,感兴趣的组件注册了侦听器并因此接收所有相关请求(控制器)和/或响应(视图)。 现在我的问题是:这是一个好主意,只是矫枉过正还是有更好的方法来完成这项工作?
谢谢!
【问题讨论】:
【参考方案1】:我认为您可以很好地将 ActiveMQ 用于 MVC,但这不是必需的/不推荐的。
几个原因 -
1) ActiveMQ 添加了一个抽象层,这可能比模型-视图-控制器层之间的抽象牺牲一点点更重/更昂贵。
2) ActiveMQ(甚至是嵌入式的)需要仔细配置,例如生产者流控制、重新传递、消息排序、消息游标等。大多数这些东西对于 MVC 来说不是必需的。
3) MVC 请求和响应通常彼此同步,这不是 ActiveMQ 请求-响应的常见情况。您很可能需要自己使其同步。
因此我认为这里最好使用标准的 MVC 框架,例如 Spring。
【讨论】:
以上是关于MVC Java SE 应用程序使用 ActiveMQ 进行通信的主要内容,如果未能解决你的问题,请参考以下文章
从 MVC 查询 Active Directory 会导致:尝试访问已卸载的应用程序域。 (HRESULT 异常:0x80131014)
具有自定义角色和 Active Directory 的 ASP MVC 5 Windows 身份验证
在 MVC 中移动 javascript 后,Active 中的访问被拒绝
Azure Active Directory 中的 URL 重定向