2013-09-01 11 views
43

Gần đây tôi đã gặp AngularJS. Tôi là một nhà phát triển web java. Tôi muốn sử dụng AngularJS cùng với khung công tác Spring-MVC. Nhưng tôi cần một số nền tảng cơ bản (hướng dẫn) để bắt đầu.AngularJS với Spring-mvc

Tôi biết về những thứ cơ bản của AngularJS, nhưng cách tích hợp nó với Spring-MVC. Như phần lớn thời gian, nó tự trả về một phần jsp (s), và chúng ta thêm chúng bằng cách sử dụng jsp-include, trong khi AngularJS mong đợi dữ liệu JSON hầu hết thời gian.

Trả lời

53

Hai trường hợp:

  1. Kiến trúc của bạn là đầy đủ phía khách hàng: Trong trường hợp này sự tích hợp là rất tự nhiên. Spring MVC cho thấy dịch vụ của bạn như là một REST (JSON/XML) và ứng dụng khách của bạn với AngularJS tiêu thụ JSON của bạn. Ở đây ứng dụng .war (Spring MVC) phải được triển khai trong một thùng chứa servlet (ví dụ Tomcat) và ứng dụng máy khách của bạn có thể được triển khai trong cùng một máy chủ hoặc trong một máy chủ HTTP như Nginx hoặc Apache.

  2. Bạn muốn giữ thế hệ trang ở phía máy chủ và chỉ sử dụng AngularJS cho một số thao tác DOM để mã của bạn phải được triển khai trong cùng một .war (bên trong WEB-INF/thư mục).

Trộn hai phương pháp tiếp cận không phải lúc nào cũng là ý tưởng hay. Bạn có thể thử Thymeleaf để duy trì việc tạo trang phía máy chủ và đồng thời có khả năng tạo khuôn mẫu, khả năng thử nghiệm và mã Xem sạch.

+0

Cảm ơn bạn đã có thông tin chi tiết. Theo như chiến tranh (Spring-MVC) là có liên quan tôi có ứng dụng đã sẵn sàng với dịch vụ REST. Nó chỉ là nên trực tiếp có các trang .html trong quan điểm của tôi hoặc tôi nên sử dụng như bình thường. Jsp trang với AngularJS bởi vì cuối cùng khi chúng được trả về phía khách hàng họ là html. –

+3

Nếu ứng dụng của bạn là REST đầy đủ, bạn không cần phải đi với JSP. Nó sẽ giới thiệu sự phức tạp, chỉ sử dụng các tệp HTML. Hãy chú ý đến bạn Mô hình bảo mật và ủy quyền, thế hệ phụ trợ (JSP) và việc sử dụng bảo mật mùa xuân làm cho mọi việc trở nên dễ dàng với thẻ JSP lib của bảo mật mùa xuân, bạn sẽ cần phải xử lý thủ công này ở phía máy khách. Chỉ thị tốt đẹp này có thể giúp bạn https://github.com/witoldsz/angular-http-auth/ – Nabil

+0

Cảm ơn Nabil. Tôi sẽ cố gắng làm điều đó. Hiện tại tôi đã giữ vỏ của tôi như là trang jsp. Tất cả các partials là .html, nhưng tôi chắc chắn sẽ nhìn vào liên kết github bạn đã cung cấp. Với HTML tôi đã lo lắng về an ninh –

36

Chỉ cần đặt tệp angular.js làm tệp tĩnh. Không có gì là riêng tư ở đó anyway.

Sử dụng Spring MVC làm nhà cung cấp dịch vụ REST thay vì JSP/Velocity/Bất kỳ trình phân giải chế độ xem Mẫu nào khác.

Bạn có dự án mẫu trên các trang web folowing:

+0

Cảm ơn bạn. Tôi sẽ xem xét các dự án và thảo luận này. –

+0

liên kết đầu tiên rất tốt, Cảm ơn – userRaj