angularjs - AngularJS 可以在 Java EE MVC 架构 : JSP->Servlet->EJB3. 1->Business Object->DAO 中工作吗

标签 angularjs rest jakarta-ee model-view-controller mvvm

对于我们正在现有框架上构建的即将推出的应用程序,我有一个关于考虑 AngularJS(当前稳定版本 - 1.3.9)的快速问题。当前框架具有 Java EE MVC 架构,以下是按顺序提到的当前组件,它们被调用的顺序:

  • 查看 - JSP:该层作为响应 Java 对象获取,我们使用 jsp:useBean访问其属性并在屏幕上显示。
  • 如果在页面上进行了任何修改,它会通过 ControllerServlet,即一个 Java 文件,其中包含访问 HttpRequest 和 HttpSession 相关信息的代码。 Controller 还在 JNDI 中进行查找,以根据 HttpRequest 参数名称查找要调用的 bean 的名称,例如页码
  • 一旦返回 EJBBean 查找, Controller 就会调用 EJB 3.1 “no-interview” View ——这些是用 @Stateless 注释的无状态 Bean。
  • EJBBean 类然后调用 BusinessObject 类,我们称它们为“BO”,它在内部被 DAO 接口(interface)
  • 引用
  • DAO 实现类是负责 CRUD 操作的类

  • 我们目前的问题:
  • 该 View 与从 DAO 返回的 Java 对象紧密耦合,并且由于响应未转换为 JSON,因此使用了许多 scriptlet 代码来显示它们的值(我知道 scriplet 是 oldskool,但作为一个遗留解决方案,别无选择)
  • jQuery 用于在将 DOM 发送到 Controller 层之前对其进行操作
  • View 不是屏幕上发生的事情的官方记录,不像 AngularJS 我可以很容易理解
  • 开发人员为不同的浏览器手动编写自定义 CSS

  • 建议解决方案
  • 应使用 AngularJS
  • 为新应用程序设计 View
  • 利用 Bootstrap css 类,这些类具有现成的 CSS,可以与 AngularJS
  • 结合使用
  • 每个请求都使用 $http 服务发送到 ControllerServlet,以确保我们使用现有的 MVC 架构,即通过 Controller
  • 路由每个请求
  • EJB 层为 RESTFul 以返回 JSON 格式的数据
  • 用于响应式网页设计的视口(viewport)特定 css 代码 - 即同一屏幕应在多个设备和平台上呈现

  • 问题 :
  • 提议的解决方案是否可行?有什么缺点?
  • 将 EJB Bean 类引用为 RESTFul 服务是一种好习惯吗?
  • 我们是否可以使用 AngularJS 访问所有 J​​ava EE 对象/接口(interface)?例如HttpRequest、HttpSession等
  • 切换到此架构是否有助于提高性能?
  • 来自管理层的问题 - 为什么不坚持使用 jQuery! - 可能是所有问题中最难说服管理层了解 Angular 的好处

  • 希望大家帮忙提点建议

    最佳答案

    我正在使用 spring 4.0.1 , hibernate 4.3.5 , jackson 1.9.2 , 我正在创建一个 RESTful返回 JSON 中的数据的 web 服务格式和 angularjs在与后端松耦合的前端。

    关于您的问题;

  • 解决方案当然是可行的,到目前为止没有缺点
    除了 session 管理很棘手,因为 Restful ws 是无状态的
    .
  • 它提供了一个非常优雅的功能,您可以访问您的所有
    通过任何应用程序 Web 客户端、桌面或
    移动的。
  • Angular 应用程序与您可以维护的后端应用程序完全隔离
    服务器中的请求和 session ,并以您喜欢的内容进行响应
    json 格式转 Angular
  • 同 2

  • 我希望它有帮助

    关于angularjs - AngularJS 可以在 Java EE MVC 架构 : JSP->Servlet->EJB3. 1->Business Object->DAO 中工作吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28262853/

    相关文章:

    java - JNDI 名称——是否需要前缀 "jdbc/"?

    java - 内容存储库中的节点和属性是什么?

    javascript - 尝试使用 jasmine 和 angular 时出错

    java - cXML 相当于 json 吗?

    rest - 本地/云 REST 应用程序的安全性

    java - Jersey 不遵循 302 重定向

    java - 在 Beanshell 解释器中执行循环

    javascript - 不使用max-height的过渡高度

    javascript - 使用 Angular Controller 将 json 数据发布到 mongodb

    angularjs - 在 ng-table 中启用分组会删除分页