[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.


Ok loading hồi nó sẽ hiển t hiển cái cửa sổ  Workspace Launcher như hình bên dưới.


Cửa sổ này sẽ yêu cầu bạn thiết lập đường dẫn vật lý (local path) để làm nơi cho chương trình này làm việc, Workspace ở đây có nghĩa là không gian làm việc tức là nơi sẽ lưu lại tất cả những gì bạn làm (project, work set, code, class,....) bằng Spring Tool Suite IDE này.

Trên Netbeans IDE cũng có cái này tuy nhiên nó có một cái Workspace Root được thiết lập mặc định tắt nhiên bạn có thể tạo Workspace khác ở đường dẫn vị vật lý khác và chuyển các project sang hoặc tạo project mới, giống như thằng eclipse IDEAS, Spring Tool IDE này vậy chỉ khác ở chỗ thằng Netbeans cho mặc định luôn còn hài thằng kìa thì cho chọn.

Nguyên tắc vàng ở đây mình khuyên nên để mặc định Workspace Path, vì khi mình thử sang một đường dẫn khác thì mấy cái project có cái dấu ! to đùng, cũng muốn tìm hiểu nhưng không cần thiết làm vậy chi mất thời gian Training xong thì cũng quăng thôi tìm hiểu chi mệt để mặc định xài cho phẻ.

Ok nếu bạn không muốn lần nào mở lên cũng thấy cái bảng này thì hãy chọn thêm tùy chọn "Use this as the default and do not ask again" (mình chọn cái này để lần sau vào luôn cho phẻ) là được. Now bây giờ tôi nhấn OK để xem ta có gì tiếp theo.


Như bạn thấy trong hình Spring Tool Stuite đang tiến hành Building workspace trong vùng màu đỏ đỏ trong hình, ngoài ra còn còn làm nhiều thứ như config, load các project LAB ở vùng màu xanh, rồi build chekc,... gì đó, nói cung là nó sẽ khởi tạo workspace và lab cho bạn, tiến trình này khá lâu vì hình như nó phải download một số LIB ở trên mạng xuống hay seo đó.

Và cũng đặc biệt lưu ý nó ngốn ram có thể tới 1 GB ram lận nên bạn lưu ý nên đang mở nhiều ứng dụng ngốn ram quá thì tạm thời tắt đi chờ nó chạy xong, và cũng lưu ý ráng chờ nó chạy xong thì mới nên tắt chương trình, không nó chạy lại cũng vậy à.

Chịu khó chờ một chút, nếu vẫn thấy nó còn chạy nhưng chương trình không bị chậm hoặc treo thì bạn đã có thể thao tác được rùi, mình cũng chả biết nó download cái gì mà cứ download hoài.

Một mẹo nhỏ:  "khi chạy xong lần đầu tiên bạn tắt nó rùi mở lại thì chương trình ngốn ram ít hơn so với lần đầu, cái này do mình thấy vậy nói thôi chứ chả có căn cứ cụ thể nào :)) Ok bây giờ ta sẽ nói một chút tổng về các bài LAB trong Spring Tool này."



Đầu tiên ta nói về hai project đầu tiên (hình như trong eclipse nó gọi là working set thì phải) là:
  • 00-rewards-common
  • 00-rewards-db
Trong file "core-spring-4.2.a.RELEASE-labdocs.pdf" chúng được mô tả là hai dự án cộng đồng (common project) mà các project khác sẽ phụ thuộc hoặc liên quan tới chúng, việc này có thể ta sẽ thấy trong bài học.

Ok bây giờ ta sẽ xem qua cấu trúc phân bố của các project, để xem nó trông như thế nào, phân bố ra sao, và chúng ta nhận thấy gì từ cách phân bố của chúng. Đầu tiên ta sẽ xem cấp độ mục 1 của một số  project như hình bên dưới, a hình như nên gọi là Working Set thì đúng hơn từ giờ tôi sẽ dùng tên này để gọi thư mục màu vàng có chữ J ở cấp độ ROOT. (có đúng không anh chị em?)


Ta nhận thấy rằng trong đó có 2 Project (do có chữ S nên hình như được gọi là Spring Project thì phải? chả biết đúng không? đoán đại thôi.) bạn để ý chúng chỉ khác nhau ở chỗ solution, cái nay thì teacher có nói qua:
  • project không có chữ solution (ex: spring-intro): là project để cho chúng ta làm bài LAB.
  • project có chữ solution (ex: spring-intro-soluiton): là project cho chúng ta copy nếu chúng ta giải không ra.

Như các bạn thấy các Working Set khác cũng tương tự có hai dạng project như vậy, nên tiếp theo mình chỉ lấy Working Set "01-spring-intro" để trình bày cho các phần tiếp theo của bài viết này, các Working Set thì cũng sẽ tương tự. Mình tiếp truy cập vào các cấp folder bên dưới như hình bên dưới.


Oh một cái gì rất quen thuộc rất giống với kiến trúc thư mục của Maven (maven folder structure), nói chảnh vậy thôi chứ lúc đầu có biết Maven là cái đếch gì đâu, tìm hiểu mới thấy được đó chứ.


Mà nhìn quen vậy thôi sao chắc được project này sử dụng Maven, biết đâu nó lừa tình thì sao, thôi thì chắc ăn kiểm tra thêm xem nó có phải là Maven hay không bằng cách truy xuất vào tập tin "pom.xml" như hình bên dưới, oa ta thấy ngay Maven POM Editor kìa, mà mình vẫn chưa tin, đa nghi mờ, sợ bị lừa tình, tôi kiểm tra tiếp bằng cách mở file với dạng Text Editor như hình bên dưới.


Và trong editor text ta thấy ngay dòng chữ "<project xmlns="http://maven.apache.org/POM/4.0.0", oh đúng là em nó rùi mừng quá.


Sở dĩ mình bày dài dòng vậy vì việc xác định Project đang Frameworld nào, dùng loại build nào, ví như Java Application, JUnit Test, Maven, vì mỗi thằng này có cách xây dựng và sử dụng khác nhau việc hiểu rõ dự án đang sử dụng cái gì là điều rất quan trọng.

Mà cũng thật mệt không hiểu trong trong eclipse, gì đâu có cả đống loại build, cả đống loại run, chả biết đường đâu mà mò, anh chi em nào hiểu rõ để lại tên và tuổi nhé, mình sẽ kiếm liên hệ học tập :)).

Nói một chút về các nhiệm vụ phải làm trong bài LAB, khi nghe từ TO DO, sực nhớ tới một bài hướng dẫn nào đó đã đọc lâu lắm rùi bên Visual Studio có hướng dẫn, lúc tìm hiểu về NETBEAS cũng có thấy qua, đó là hướng dẫn về cách hiển thị các comment TO DO hoặc bất kỳ comment nào mà bạn thích chỉ cần có định nghĩa sẽ được hiển thị trong cửa sổ Task List cái này lúc đó thấy hay lắm mà không có dịp dùng thường xuyên nên quên mất tiêu.

Ok để bữa nào rảnh viết một bài về nó sau, giờ thì chúng ta áp dụng cửa sổ Task List để xem về các nhiệm vụ mà ta cần phải hoàn thành trong bài LAB, để thấy được tất cả nhiệm vụ trong bài LAB bạn chọn vào PROJECT và tại khu vực có thẻ Console bạn chọn qua thẻ Tasks bạn sẽ thấy được các yêu cầu nhiệm vụ.


Bạn chỉ việc double click mouse vào task bạn muốn view, chương trình sẽ tự động chuyển tới vị trí của task đó được ghi chú, tuy nhiên khi chuyển tới tập tin chứa task ghi chú thì bạn chỉ thấy được các tasks được ghi chút của tập tin đó thôi.

Ví dụ như hình bên dưới khi mình click dub vào TODO-01 nó sẻ chuyển mình tới tập tin "RewardNetworkImpl.java" và trong file này chỉ có hai to TODO-01 và TODO-02 được hiển thị trong danh sạch Tasks.



Tổng Kết:

Vây là bạn nắm được các điều cơ bản về Spring Tool Stuite và các bài LAB, tôi xin tổng kết lại và nói một chúng về file "core-spring-4.2.a.RELEASE-labdocs.pdf"

Trong tài liệu này này tôi cũng chỉ mới xem sơ qua và biết được các LAB trong đây là để xây dựn một hệ thống  tên là "Reward Dining" và trong tài liệu nó dụng từ "Domain" để chỉ tên dự án này (vãi cả đạn đọc không kỹ đố biết mấy từ Domain trong bài nó nói cái quái gì).

Đây là một hệ thống thưởng ăn uống, mới đầu đọc tưởng "oh đi ăn còn được thưởng tiền, sướng vãi" đọc lại thì hố hàng, nó là kiểu như điểm thưởng khi đi ăn tại hệ thống nhà hàng khách sạn, để dễ hiểu thì kiểu như ở Việt Nam có mấy nhà hàng ăn uống có thẻ thành viên mỗi lần ăn có thể giảm giá hoặc được cộng điểm gì đó rùi từ điểm qui ra tiền hoặc hiện vật ví như Lotteria, KFC, REDSUN, King BBQ,... vậy đó.

Kế tiếp là nắm được kiến trúc các LAB trong training là:
  • Hai Working Set đầu tiên là công đồng, các bài lab sẽ phụ thuộc hoặc có liên quan tới chúng.
  • Bài LAB gồm một bài tập và một bài giải.

Ngoài ra ta cũng đã biết thêm các thông tin về dự án là:
  • Sử dụng Spring Framwork.
  • Sử dụng Maven.
  • Cách để xem các nhiệm vụ cần thực hiện trong bài LAB.

Một điều thú ví khác bạn có để ý trên folder biểu tượng của project có chữ S không nó nghĩa là "STS Project = String Tool Suite Project" mà bên trong nó sử dụng Maven, đáng lỹ là phải để M mới đúng mà thằng chôm chỉa quá.

Vãi hàng có nhiêu đó thôi mà đọc không biết bao nhiêu trang từ eclipse, tới maven, lại sang spring, mới hiểu được, thật mệt quá đi đi ngủ thôi, đuối quá rùi, mai mình sẽ tiếp tục viết về bài giải từ trang 1 tới trang 40 và nếu thuận lợi thì quất luôn bài LAB số 1.

"À anh chị em nhớ cho ý kiến đóng góp, hoặc chỉnh sửa lại chỗ sai giúp nhé, thank all."



Writer: +Bui Ngoc Son







No comments:

Post a Comment