Showing posts with label Java Spring. Show all posts

Giới thiệu tổng quát về Spring.

Một bài dịch từ "http://s7.zetaboards.com" thấy hay nên lưu lại :)) Spring là một application framework mã nguồn mở, được giới thiệu vào năm 2002. Rod Johnson đã đưa ra ý tưởng này từ kinh nghiệm làm việc với kiến trúc J2EE.


Ông ta đã viết cuốn sách với tiêu đề: “J2EE Develoment without using EJB” để giới thiệu khái niệm trình chứa hạng nhẹ (lightweight container). Với lý luận: EJB thì có giá trị của nó, nhưng không phải lúc nào cũng cần thiết và phù hợp cho tất cả các ứng dụng.

[Training Java Spring Nội Bộ] Lab 1: Developing an Application from Plain Java Objects.

Bây giờ ta sẽ tìm hiểu bài LAB đầu tiên trong khóa học Spring Java, như thường lệ trước khi bắt đầu học cái gì hay làm cái gì tôi thường có thói quen phân tích xem mình cần phải làm gì, cần cái gì để đạt hiệu quả cao nhất, tương tự trong bài làm này tôi đi tìm hiểu xem mình cần làm gì, và được gì trong bài LAB này.

Đầu tiên để có thể hiểu được rõ ràng bài LAB yêu cầu, cũng như lợi ích đặt được sau bài LAB bạn bắt buộc phải đọc tài liệu "core-spring-4.2.a.RELEASE-labdocs.pdf", và trong bài LAB hãy đọc bắt đầu đọc từ mục "Chapter 1: spring-intro: Introduction to Core Spring" trang 15.

Ok để hiểu rõ về bài LAB bạn phải đọc tài liệu ở đây tôi chỉ tập trung vào một số điểm chính và giải bài tập thôi không dịch ra hết nổi  :)), phần đầu tiên chúng ta tìm hiểu là chúng ta sẽ được gì sau bài LAB.

Chúng ta sẽ học được:
  • Cơ bản các chức năng trong Spring Tool Suite.
  • Cốt lỗi các chức năng xử lý RewardNetwork và API.
  • Tương tác cơ bản giữa các thành phần chủ chốt trong ứng dụng Reward Dining.

Cơ bản các chức năng trong Spring Tool Suite.

Phần này được mô tả khá chi tiết công hình ảnh minh họa trong tài liệu về bài LAB, trong cái nhìn phân tích tổng quan lần đầu tiên tôi hầu như đã đoán ra toàn bộ nội dung này và đã mô tả trong bài viết [Training Java Spring Nội Bộ] Tìm hiểu Spring Tool Suite của Core-Spring-4.2.a và tìm hiểu tổng quát về các LAB.

Ha ha ha... công nhận mình giỏi quá ta (tự sướng chút), trong phần này chủ yếu mô tả về cách dùng Spring cơ bản, cấu trúc workspace, working set, project của dự án, nói sơ qua một số lỗi có thể gặp khi sử dụng Spring Tool chủ yếu nói về lỗi kết nối mạn internet không được khiến nó tải về các LIB ko được dẫn tới lỗi hoặc bạn xử lý code trong khi các LIB chưa tải về xong, sử dụng todo list, cái phần này tôi đã giới thiệu qua trong bài trước bạn hãy xem bài trước nhé.

Chỉ có một phần về todo list tôi còn thiếu sót nên sẽ miêu tả tại đây, trong bài trước tôi có nói qua cách sử dụng tuy có hơi bất tiện là khi bạn nhấn sang class khác bạn chỉ thấy được todo list trong class đó thôi, trong phần mô tả tài liệu này thì có hướn dẫn cách để xem toàn bộ todo list mà không cần quan tâm bạn đang ở class nào, chọn mũi tên cấu hình sổ xuống ở góc phải màn hình Tasks và chọn Configure Contents..

Hiểu về Dependency Injection thông qua ví dụ thực tế.

Bài viết này được tổng hợp lại sau khi mình đọc qua một loại bài mô tả về Dependency Injection, tuy nhiên nếu giải thích theo code thì rất khó để hiểu về Dependency Injection là gì? Chính vì thế bài viết này mình cố găng mô tả Dependency Injection thông qua các khái niệm thực tế đơn giản và các ví dụ mô tả việc áp dụng nó trong thực tế.

Hiểu về Dependency Injection thông qua ví dụ thực tế.

[Training Java Spring Nội Bộ] Bài giảng training trang 1 - 40.

Do sợ đụng chạm tới phần bản quyền nên mình không post phần tài liệu lên chỉ post phần hướng bạn xem nó cùng với tài liệu training Spring (core-spring-4.2.a.RELEASE-student-handout-with-fixes.pdf) nhé, trong bài mình sẽ đi từng trang một kể cả mấy trang giới thiệu :)).

Page 1: Cover Page

Chẳng có gì quan trong cả, chỉ giới thiệu về khóa học, phiên bản khóa học, chủ đề khóa học và thời gian học.
  • Spring.
  • Chủ đề: Core Spring.
  • Thời gian: 4 ngày.
  • Mục tiêu: Xây dựng ứng dụng cấp doanh nghiệp bằng Spring.
  • Phiên bản: 4.2.a
Spring Frameworkd

[Training Java Spring Nội Bộ] Tìm hiểu Spring Tool Suite của Core-Spring-4.2.a và tìm hiểu tổng quát về các LAB.

Trong bài trước mình đã hướng dẫn cách cài đặt Core Spring Release (Spring Tool Suite and Lab), trong bài viết này chúng ta sẽ tìm hiểu có gì khác so với Spring Tool Suite và những hướng dẫn và lưu ý khi sử dụng để phục vụ cho bài Training được tốt hơn.

"Trong bài này mình vừa tìm hiểu về eclipse vừa mô tả, nếu có chỗ nào sai, hoặc không chính xác anh chị em phản hồi chỉ dẫn giúp, xin đa tạ. Trong bài nếu thấy hình nhỏ quá thì các bạn click chuột vào xem hình lớn nhé mình chụp chuẩn HD 1080 đó :))"

Ok bây giờ mình sẽ chạy lần đầu tiên chương trình Spring Tool Suite của Core Spring Release, dưới đây là màn hình loading khi mình chạy Spring Tool.

[Training Java Spring Nội Bộ] Hướng dẫn cài đặt Core Spring (Spring Tool Suite and Lab).

Trước khi đi vào hướng dẫn cài đặt cho em nó kể lể một chút về quá trình cài đặt, đầu tiên nhận được thông tin Training cần phải có máy Laptop, oh tin vui là em không có laptop (boy nhà nghèo).

Thế là bạn Tiên dễ thương đi hỏi mượn cho em con laptop Core I5 cảm động gần chết, nhìn em nó xa thấy cũng ngon ngon, nhìn kỹ seo nó chạy lết dữ vậy trời, ok thế là em đã có máy do bận việc nên phải gần tới buổi Training em mới bắt đầu cài đặt.

Thế là lên link download tải về, oh mạng nhanh vãi chả nhớ bao nhiêu MB hình 6 mấy thì phải? Download mất 3 hours mà trong khi chỉ còn 4 hours nữa là bắt vào buổi Training, oh no,.. em chạy tứ xứ, hỏi tứ bề cái bản cài đặt.

Thế là có bạn Bình thân thiện cho em cái bản cài "spring-tool-suite-3.7.3.RELEASE-e4.5.2-win32-x86_64.zip" nhưng lại không co USB thể lại chạy qua bạn Phượng IT để mượn, gắn USB vào nó không nhận, ah bị khóa rùi, lại chạy sang IT nhờ mở khóa sẵn cho quyền cài đặt luôn.

Mọi thứ xong xui thế là bắt đầu cài đặt nhớ lướt qua cái file nào đó nó yêu cầu cài bản bản Java 8, mà trên máy thì chỉ có Java 6, sau đó nghe pác Duy nói bản 6 cài cũng được, ok em nó bắt đầu cài luôn, ai ngời nó đòi thêm bảng JDK mà trong máy chỉ có JRE thôi.

Thế là lại chạy đi hỏi IT xui cái IT rủ nhau đi meeting hết rùi, đầy ngậm ngùi tự tải bản JDK 8 (32 bit) trên internet về (đằng nào cũng lờ rùi down luôn bản 8), ok gần download xong rùi còn khoảng mười mấy % rùi đứng cứng ngắt nữa tiếng đồng hồ mà mình thì lại không dám tắt vì sợ down lại, chờ đởi mỏi mòi thì báo câu xanh rờn "download failed" a..........

Nói tóm lại cũng download thành công Spring Tool Suite, và cài đặt thành công mừng quá trời, ngó qua bên bạn Thạnh ủa thấy cái bản Spring Tool của bạn ấy là lạ khác với mình, ok chắc bạn ấy cài sai rùi :)) sau một hồi ngó qua, lại ngó lại thấy có gì đó không ổn hình như mềnh sai, ma sự thực cũng không phải sai chỉ không đủ thôi :))

Ok thế là lại hỏi xin bạn Thạnh nhà ta các file cài đặt, bạn quăng cho một mớ nào là file cài đặt file pdf, file txt, mà cái file cài đặt có gì đó là lạ tên file là ""core-spring-4.2.a.RELEASE-installer-x86_64.exe"" khác tên với của bạn cái file setup Bình thân thiện gửi cho.

Thôi kệ lấy file cài đặt của bạn ra cài thử, oa lần này mọi thứ ok, cài đặt ok, chỉ có mở lên nó báo cái lỗi gì X86 X34 X24 JAVA gì gì đó chả nhớ... báo cái lỗi gì từa lưa chả có chúng gợi ý bị gì.... thấy nó bào XXX Java gì đó bạn Thạnh gợi ý cho cài thêm JDK 64-bit vào.

Ok em nghe theo, lại lên internet tải tiếp bảng JDK 64-bit nó báo 3 tiếng đồng hồ sau lấy hàng, vãi cả đạn, mà không sao đã có kinh nghiệm đau thường lần 1, tắt nó đi tải lại may sao nó nhanh hơn, sau khi tải xong cài đặt xong JDK 8 (64-bit) mở Tool lên,... em nó vẫn báo lỗi... hơ hơ hơ vui vãi.

Được rùi anh cài lại từ đầu và setup 64-bit xem sao, hì hục cài khí thế, mở lên, em nó vẫn tiếp tục báo lỗi... hờ hờ hờ,... điên với nó mất, nhưng không sao dù seo hồi cái mới máy tính mới về VN em đã có đi cài máy dạo nên cũng, lắp tiệm NET mướn, nên cũng có kinh nghiệm cài đặt.

Thế là em gỡ sạch, xóa sạch cái folder liên quan từ file cài đặt của bạn Bình hay Thạnh em cho chúng đi hết , kế tiếp hì hục cài lại cài lại bảng của Thạnh, thế ánh sáng bình minh đã ló dạng em đã cài đặt thành công (nguyên nhân có thể là do hai bản cài này chạm nhau, thôi kệ pà nó chỉ cần nó chạy là mừng rùi TT_TT).

Vãi cài có cái Aplication mà viết thành truyện được luôn rùi, thôi kệ xem như cũng mò nẫm ra được vài điều là:
  • Cái file setup của bạn Bình là tập tin cài đặt chương trình Spring Tool Suite thông dung và nguyên bản mà ta có thể tìm thấy trên https://spring.io/tools/sts/all.
  • Cái file steup của bạn Thạnh là do bên cơ sở Training cung cấp, trong đó nó tích hợp đầy đủ cho việc thực hành bài LAB khi training, chi tiết ta sẽ đi vào sau.

Ok được rùi giây phút tự truyện (giải tỏa chút :)) đã qua ta sẽ đi vào vấn đề chính bài này mình hướng dẫn cài đặt Core Spring (Spring Tool Suite and Lab) của cơ sở Training cung cấp và cài đặt trên hệ điều hành Windows 7(64-bit) và tùy vào bản setup phải có một trong hai bộ là JDK 8 32-bit hoặc 64-bit, nói tóm lại là:
  • Operator System: Windows 7 (64-bit).
  • Java Requirement: (bắt buộc là JDK 8)
    • JDK 8 (32-bit) + JRE 8 (32-bit)
    • JDK 8 (64-bit) + JRE 8 (64-bit)
  • Setup File: 
    • core-spring-4.2.a.RELEASE-installer-x86_64.exe (64-bit version)
    • core-spring-4.2.a.RELEASE-installer.exe (32-bit version)

Ok cài đặt thành JDK và JRE rùi thì chạy tập tin core-spring-4.2.a.RELEASE-installer-x86_64.exe thôi (bài này dùng dùng bảng 64-bit cho sang :)), từ bây giờ các bạn là theo đúng hướng dẫn bên  dưới nếu làm khác mà phát sinh lỗi em không chịu trách nhiệm, mà làm đúng vẫn bị lỗi em cũng không chịu tránh nhiệm luôn.

Spring Tool Suite and Lab

[Training Java Spring Nội Bộ] Chuẩn bị tài liệu và dụng cụ học tập.

Như trong mail pác Huy đã thông báo link download các liệu và công cụ học tậ, vì thế các pác cứ download từ đó về nhé, còn mình thì dùng hệ điều hành Windows 7(64 bit) nên mình chỉ lượm về các bản cài đặt có liên quan tới Windows(64 bit) thôi, sau khi download xong vả tổ chức lại thì các tập tin và file setup cần có để training là như sau:

Training Java Spring Nội Bộ.

Tuần rùi mới được cho đi training nội  bộ về Java Spring, cũng là lần đầu tiên nghe về em nó, cũng háo hức chờ đi học, nhưng sau khi nhận được tài liệu, xem sơ qua, thấy 953 trang, bài lap mô tả 162 trang, lại toàn tiếng anh, thấy dậy cũng là dân Canada nói tiếng anh và chỉ họ trong vòng 4 ngày, rùi tự hiểu đời em tiêu rùi.

Thôi thì hi vọng xem thấy dạy thế nào, sau khi cố gắng lắng nghe trong vòng 1 tiếng đầu tiên em nhận thấy mình xong rùi, cái này dạy trên Spring Tool, liên quan tới Maven, Java thì dính luôn thằng EJB, và một loạt thằng khác mà em không biết nó.

Sau khi tổng hợp lại xem mình có gì thì nhận thấy các điều là: Spring Tool lấy từ thằng Eclipse thằng này là 1 trong hai IDEAS mình tìm hiểu khi bắt đầu mò nẫm tự học Java, nghe giang hồ đồn thằng Eclipse tốt lắm xài ngon hơn Netbeans nhiều, ok em nghe thèo, cài đặt được 2 lần em từ bỏ luôn cài phức tạp bỏ xừ lại nhiều phiên bản chả biết đâu mà lần (sau khi tìm hiểu lại thì thấy em nó đỡ hơn xưa) em về lại với Netbeans, rùi Spring em không biết gì luôn, EJB có nghe nói chỉ nghe nói thôi, tầm xàm ba láp gì đó... không biết luôn, công thêm thầy giảng theo kiểu cho các bạn đã có căn bản rùi, còn ngáo ngáo như mình thì chỉ biết ngồi ăn cháo thôi TT_TT. Sẵn rùi giới thiệu luôn trang chủ cung cấp bài Training này là "https://pivotal.io/academy".

Ok đã tổng hợp lại xem những gì mình đã biết để có thể học khóa Training này, mờ hình như chẳng có gì hết thì phải, và ngồi nghe giảng tiếp thì cũng chả biết gì hết, mà cũng không thể ngồi ngáo ra trong 4 ngày được, đành phải chuyển chiến lược "thầy đậy kệ thầy trò học kệ trò chúng ta chỉ liên quan với nhau nha quyển sách và bài lab".

Đã xác định được con đường thì bắt đầu học thôi :)) bài viết này mình chia lại cái mình đã tìm hiểu được trong khóa training và chia sẻ cho anh em nội bộ cùng thảo luận thôi, vì lý do bản quyền Training mình không thể cung cấp tài liệu chi tiết, vì vậy các bạn thị giả không phải anh em nội bộ thì vui lòng bỏ qua bài viết này, vì xem sẽ khó hiểu.

Chuẩn bị tài liệu và dụng cụ học tập.
Hướng dẫn cài đặt Core Spring (Spring Tool Suite and Lab).
Tìm hiểu Spring Tool Suite của Core-Spring-4.2.a và tìm hiểu tổng quát về các LAB.







 


Các chức năng và cơ chế xử lý Request-Respone trong Spring MVC.

Bài viết này là từ blog HocLapTrinh365 mình trong khi tìm hiểu về Spring, tuy không chi tiết lắm nhưng văn phong khái niệm khá chuẩn, khá dễ hiểu, nên mình lưu lại để rãnh rỗi viết lại một bài chi tiết sau.

Các chức năng của Spring MVC

  • DispatcherServlet là một lớp đứng ra quản lý toàn bộ các hành động của framework (front controller) trong suốt quá trình thực thi các lệnh thông qua HTTP request
  • HandlerMapping: chọn 1 đối tượng sẽ xử lý các request dựa trên các thuộc tính và điều kiện của các request đó
  • Handleradapter: thực thi các handler đã chọn
  • Controller: đứng giữa Model và View để quản lý các request được gửi tới và chuyển các response chính xác
  • View: chịu trách nhiệm trả các response cho client
  • HandlerInterceptor: ngăn chặn (lọc) các request từ user. Nó được coi như Servlet filter (không bắt buộc và không bị quản lý bởi DispatcherServlet)
  • LocaleResolver: xử lý và lưu một phần các thông tin của user
  • MultipartResolver: làm cho việc upload file dễ dàng hơn bằng cách gói các request lại.

Cơ chế xử lý Request-Respone trong Spring MVC

  • Request được gửi đến DispatcherServlet
  • DispatcherServlet gửi yêu cầu đến Handler Mapping ( Một bản đồ cấu hình URL ) để xác định controller nào sẻ xử lý yêu cầu này.
  • DispatcherServlet gửi yêu cầu đến Controller sau khi biết được Controller nào sẻ xử lý yêu cầu. Nếu yêu cầu đó cần truy xuất cơ sở dữ liệu thì Controller sẻ ủy nhiệm cho một business logic hay nhiều hơn một service Objects (MODEL) để lấy thông tin và gủi dữ liệu về cho Controller lúc này Controller đóng gói mô hình dử liệu và tên của một view sẻ được tải lên thành đối tượng ModelAndView.
  • ModelAndView được gửi trả về DispatcherServlet.
  • DispatcherServlet gửi gói ModelAndView cho ViewResolver để tìm xem trang web (JSP) nào sẻ được load lên.
  • DispatcherServlet load trang web đó lên cùng với dữ liệu của nó