【问题标题】:What is the best approach for Java, Spring and Angularjs web-app?Java、Spring 和 Angularjs 网络应用程序的最佳方法是什么?
【发布时间】:2014-10-07 08:47:05
【问题描述】:

我想使用以下技术开发 Web 应用程序:Maven、Java、Hibernate、Spring(核心、mvc、安全性、数据)、Bootstrap 3、AngularJs。我想知道两者之间最好的方法是什么。我的问题是关于如何组织 Web 部件。我的应用程序中有很多 html 页面(homepage.html、login.html、usermanagement.html、profil.hml、project.html):

1.我想在哪里使用真正的单页应用程序。我有一个带有 ng-view 标签的主文件,并使用 routeProvider 切换到部分文件。例如,我可以编写以下代码

    myApp.config(['$routeProvider',
      function($routeProvider) {
        $routeProvider.
          when('/', {
            templateUrl: 'partials/homepage.html',
            controller: 'HomeCtrl'
          }).
          when('/login/', {
            templateUrl: 'partials/login.html',
            controller: 'LoginCtrl'
          }).
          otherwise({
            redirectTo: '/'
          });

  }]);
  1. 我的第二个选择是制作多个单页应用程序。在这种情况下,每个页面都将使用 spring mvc 呈现。在每个页面中,我都会有一个 angularjs 控制器。例如,以下 Spring MVC 控制器呈现主页。

    @控制器 @RequestMapping("/") 公共类 HomePageController{

    @RequestMapping( method = RequestMethod.GET )
    public String index() {
    
        return "homepage";
    }
    

    }

对于主页,我将配置为:

 myhomePageApp.config(['$routeProvider',
          function($routeProvider) {
            $routeProvider.
              when('/', {
                templateUrl: 'nothing to display',
                controller: 'HomeCtrl'
              }).
              when('/contact/', {
                // display contact info in a div on home page
                templateUrl: 'partials/contact.html', 
                controller: 'LoginCtrl'
              }).
              otherwise({
                redirectTo: '/'
              });

      }]);

所以它的页面将是一个单页应用程序。 感谢您的阅读和您的建议。

【问题讨论】:

  • 您的问题是什么?可以使用您选择的技术创建 SPA。也可以创建 MPA。没有“最好”的设计。两者都有其优点和缺点。选择你喜欢的。
  • @JBNizet 感谢您的评论。在我决定之前我想知道他们的利弊。
  • 我是 AngularJs 的新手,所以我没有经验来选择这项技术

标签: java angularjs spring hibernate twitter-bootstrap-3


【解决方案1】:

对于您提议的堆栈,请考虑将您的 Web 应用程序概念拆分为 Java、Hibernate、Spring 后端和 AngularJS、Bootstrap 前端。

这样,您可以使用 Spring Boot 之类的东西来帮助您设置后端。这将为您创建一个包含所有依赖项和良好项目布局的 Maven 项目。

然后,您可以使用任何可用于创建 AngularJS 应用程序的前端脚手架工具。 Yeoman 是一个让你开始使用 AngularJS 和 Bootstrap 的好工具。它还会创建一个 Grunt 构建文件,为您自动执行构建过程。

然后,您应该只在后端实现服务端点,并在前端应用程序中创建整个 UI。然后,您可以使用 Maven/Grunt 将这两者组合成一个可部署的应用程序,甚至决定单独托管它们。

【讨论】:

  • 太好了,我会检查的。但是创建 spa 或 mpa 更好吗?
  • 很难说哪个更好。根据我的经验,很难将整个 Web 应用程序创建为单个 MPA。例如,您可能有某些(潜在)客户端到达的登录页面,它们是纯静态的,或者密码检索页面,它们具有某些功能。对于那些加载整个 SPA 的人来说没有意义(对 PageSpeed 排名也不利)。您的客户使用您应用程序的实际功能的部分可能应该作为 SPA 实现。
  • 好的,谢谢。我明白了,所以您认为创建多页应用程序更好、更简单
猜你喜欢
  • 1970-01-01
  • 2010-12-14
  • 2013-03-15
  • 2020-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-03
相关资源
最近更新 更多