Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java

62 0 0
Tài liệu đã được kiểm tra trùng lặp
Báo cáo phân tích hệ thống quản lý và giới thiệu tư vấn việc làm xây dựng bằng java

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Hệ thống quản lý việc làm được tạo ra nhằm mục đích quản lý những công việc được tuyển dụng, ứng tuyển một cách dễ sử dụng, dễ quản lý . Hệ thống sẽ bao gồm các chức năng như đăng tin tuyển dụng, tìm kiếm việc làm theo nhiều tiêu chí, ứng tuyển, xem thống kê qua từng năm, xác nhận những nhà tuyển dụng. Nhà tuyển dụng cũng có thể xem được những đánh giá mà ứng viên đã bình luận trước đó. Người dùng trong quyền nhà tuyển dụng có thể sử dụng chức năng đăng tin tuyển dụng bằng cách điền thông tin ứng tuyển lên và những yêu cầu trong việc tuyển dụng đó. Nhà tuyển dụng còn có thể xem thông tin của các ứng viên khác. Khi đăng ký người dùng thì sẽ điền đầy đủ thông tin hồ sơ của mình. Sau khi đăng ký người dùng trong quyền ứng viên có thể cập nhật hồ sơ thông tin cá nhân của mình, tìm kiếm việc làm theo nhiều thiêu chí, tìm kiếm tên công việc muốn ứng tuyển và nộp đơn ứng tuyển. Ngoài ra, người dùng ứng viên còn có thể xem và đánh giá các nhà tuyển dụng mà họ muốn. Ứng viên khi vào sẽ thấy các công việc được hiển thị theo ngày mới nhất của hiện tại. Người dùng trong quyền Quản trị có quyền xem biểu đồ thống kê các đơn ứng tuyển qua các năm theo từng ngành nghề mà ứng viên đã chọn hoặc xác thực quyền của nhà tuyển dụng để nhà tuyển dụng có thể đăng bài tuyển dụng lên trang tìm việc làm. Đồ án này sẽ giúp cho việc quản lý việc làm trở nên hiệu quả hơn, tiết kiệm thời gian và tăng sự tương tác giữa Quản trị và nhà tuyển dụng,ứng viên.

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC MỞ THÀNH PHỐ HỒ CHÍ MINH

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC MỞ THÀNH PHỐ HỒ CHÍ MINH

<PHẠM ANH PHÁT><LÊ HỒNG PHÚC>

< HỆ THỐNG QUẢN LÝ VIỆC LÀM >

Mã số sinh viên: <2051050342>Mã số sinh viên: <2051050360>

ĐỒ ÁN NGÀNH

NGÀNH <CÔNG NGHỆ THÔNG TIN>

Giảng viên hướng dẫn: <Dương Hữu Thành>

Trang 3

LỜI CẢM ƠN

Trong quá trình thực hiện môn học đồ án này, em đã nhận được rất nhiều sự giúp đỡtừ thầy cô trong khoa Công nghệ thông tin của Trường Đại học Mở thành phố Hồ ChíMinh Em xin giành lời cảm ơn chân thành nhất đến với giảng viên hướng dẫn Thạc SĩDương Hữu Thành đã giành thời gian để giải đáp những thắc mắc, vướng mắc trongbài tập của em Ngoài ra, thầy còn hết mình hỗ trợ em trong việc tìm kiếm, khắc phục,sửa chữa những lỗi lầm và vấn đề mà em mắc phải trong lúc thực hiện đồ án Thầy còndạy cho em những kỹ năng cần phải có khi trở thành một lập trình viên khi đi làm Emcũng xin giành lời cảm ơn này đến với các thầy cô trong khoa Công nghệ thông tin đãcho chúng em một môn học có thể thử sức với bản thân mình Cuối cùng, em xin cảmơn đến Trường Đại học Mở thành phố Hồ Chí Minh đã cho em một môi trường tốt,đầy đủ cơ sở vật chất và nhiều môn học thú vị cho em tiếp thu nhiều kiến thức mới,giúp cho chúng em dễ dàng trong việc suy nghĩ và sáng tạo trong suốt quá trình họctập đến nay.

During the period of doing project subject, I received a lot of helpful and usefulknowledge from teaching staff in Information Technology faculty of Open University.Especially, I want to express my sincere thanks to my faculty advisor Dương HữuThành because teacher Thành always took a lot of his time to help his students tofigure out the problems and taught them the way to repair it In addition, teacherThành always listen and answer the student’s question and indicate the suitable way tofor his student’s main major I also give this sincere thanks to the teaching staff infaculty Information Technology for creating a subject that helps me cultivate myexperience and develop my competence Finally, I want to thank Open Universitywhere I have a wonderful learning environment and have full facilities Furthermore,Open University also have a lot of subject that very interesting, it’s help me absorb alot new knowledge and feel comfortable in all the period that I’ve learned.

Trang 4

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Trang 5

TÓM TẮT ĐỐ ÁN NGÀNH

Hệ thống quản lý việc làm được tạo ra nhằm mục đích quản lý những công việc đượctuyển dụng, ứng tuyển một cách dễ sử dụng, dễ quản lý Hệ thống sẽ bao gồm cácchức năng như đăng tin tuyển dụng, tìm kiếm việc làm theo nhiều tiêu chí, ứng tuyển,xem thống kê qua từng năm, xác nhận những nhà tuyển dụng Nhà tuyển dụng cũng cóthể xem được những đánh giá mà ứng viên đã bình luận trước đó.

Người dùng trong quyền nhà tuyển dụng có thể sử dụng chức năng đăng tin tuyểndụng bằng cách điền thông tin ứng tuyển lên và những yêu cầu trong việc tuyển dụngđó Nhà tuyển dụng còn có thể xem thông tin của các ứng viên khác.

Khi đăng ký người dùng thì sẽ điền đầy đủ thông tin hồ sơ của mình Sau khi đăng kýngười dùng trong quyền ứng viên có thể cập nhật hồ sơ thông tin cá nhân của mình,tìm kiếm việc làm theo nhiều thiêu chí, tìm kiếm tên công việc muốn ứng tuyển và nộpđơn ứng tuyển Ngoài ra, người dùng ứng viên còn có thể xem và đánh giá các nhàtuyển dụng mà họ muốn Ứng viên khi vào sẽ thấy các công việc được hiển thị theongày mới nhất của hiện tại.

Người dùng trong quyền Quản trị có quyền xem biểu đồ thống kê các đơn ứng tuyểnqua các năm theo từng ngành nghề mà ứng viên đã chọn hoặc xác thực quyền của nhàtuyển dụng để nhà tuyển dụng có thể đăng bài tuyển dụng lên trang tìm việc làm.Đồ án này sẽ giúp cho việc quản lý việc làm trở nên hiệu quả hơn, tiết kiệm thời gianvà tăng sự tương tác giữa Quản trị và nhà tuyển dụng,ứng viên.

Trang 6

Hệ thống quản lý việc làm của chúng em được tạo ra sẽ phù hợp với các ứng viên nhưhọc sinh, sinh viên đang có nhu cầu tìm kiếm việc làm để thực tập và các ứng viênđang trong giai đoạn tìm kiếm việc làm mới cho bản thân

Hệ thống khi phát triển sẽ có các chức năng cơ bản như một trang Web việc làm thậtnhư việc tìm kiếm việc làm theo các tiêu chí, xem thông tin chi tiết từng công việctuyển dụng, nộp đơn ứng tuyển và cũng như tạo File CV khi ứng viên cần Giúp nhàtuyển dụng tạo cơ hội việc làm cho các ứng viên bằng cách đăng tin tuyển dụng Quảntrị viên thì quan sát, kiểm tra về thông tin của các nhà tuyển dụng đã đăng ký trêntrang Web từ đó có thể xác minh được nhà tuyển dụng để cho phép họ đăng tin tuyểndụng Quản trị còn có thể xuất báo cáo thống kê dưới dạng Excel hoặc PDF

Hệ thống đã có thể thành công xử lý logic các chức năng cơ bản cũng như phụ trợ kểtrên Tuy vậy nhưng hệ thống sẽ cần phải cải tiến thêm về mặt logic vì đôi khi hệthống xử lý lỗi khá thô sơ và cần phải chi tiết về nhiều trường hợp khác nhau cũng nhưthiếu logic về một vài phần nhỏ bên trong.

Trang 7

2.1.1 Tổng quan về Spring Framework 15

2.1.2 Kiến trúc Spring Framework 16

2.1.3 Tổng quan về Spring Boot 17

2.1.4 Kiến trúc về Spring Boot 19

2.1.5 Hibernate 20

2.1.6 Tổng quan về Spring MVC 23

2.1.7 Các thành phần cấu hình khác 28

Trang 8

2.2 ReactJS 28

2.2.1 Giới thiệu ReactJS 28

2.2.2 Kết hợp ReactJS với Java Spring Boot 31

Chương 3 HỆ THỐNG QUẢN LÝ VIỆC LÀM 33

3.4.2 Tìm kiếm và đánh giá nhà tuyển dụng 40

3.4.3 Tìm kiếm việc theo nhiều tiêu chí 43

3.4.4 Thống kê 46

3.4.5 Xuất Excel 48

3.4.6 Tạo File CV 49

3.4.7 Thêm đơn ứng tuyển 50

3.4.8 Lưu ID công việc để thêm Application 54

3.4.9 Xoá và xem đơn ứng tuyển Application 55

Chương 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 57

Trang 9

OXM – Object-XML Mapping – Ánh xạ XML

JPA – Java Persistence API- Giao diện Lập trình ứng dụng lưu trữ JavaJMS- Java Message Service – Dịch vụ tin nhắn

DOM- Document Object Model- Đại diện cho giao diện người dùng

Trang 10

Hình 2.1.5.7 Minh hoạ Hibernate 22

Hình 2.1.6.1 Thư viện JSTL - Spring Security 23

Trang 11

Hình 2.2.2.1 Kiến trúc hệ thống quản lý việc làm 33

Hình 3.3.1.1 Lược đồ Use Case 34

Trang 12

Hình 3.4.4.4 Lấy dữ liệu thống kê 47

Hình 3.4.5.1 Thư viện Excel Poi 48

Hình 3.4.5.2 Tạo thuộc tính Excel 48

Hình 3.4.7.3 Thông tin nộp đơn 51

Hình 3.4.7.4 Kết quả nộp trùng công việc 51

Hình 3.4.7.10 Truyền dữ liệu Json 54

Hình 3.4.7.11 Kết quả Application Reactjs 54

Hình 3.4.8.1 Endpoint JobID 54

Hình 3.4.8.2 Lưu JobID vào Cookie 55

Hình 3.4.9.1 Xoá và xem Application 55

Hình 3.4.9.2 Ajax deleteApp 56

Hình 3.4.9.3 Hàm xoá 56

Trang 13

DANH MỤC BẢNG

Bảng 2.1 phân biệt RequestParam và PathVariable 23

Trang 14

MỞ ĐẦU

Trong cuộc sống hiện đại ngày nay, ngày càng có nhiều doanh nghiệp thì đi cùng vớiđó chính là sự gia tăng nguồn nhân lực của mỗi công ty của doanh nghiệp đó nhưng vìcông nghệ cũng phát triển theo thời đại nên cũng có rất nhiều trang Website giả mạomọc lên thu hút nhiều bạn trẻ học sinh, sinh viên tìm kiếm việc làm để trang trải cuộcsống hoặc mới ra trường để tìm kiếm công việc phù hợp với ngành nghề của mình Vìvậy việc tạo ra một trang Web quản lý việc làm để phục vụ cho nhu cầu ứng tuyển củacác nhà tuyển dụng cũng như nhu cầu tìm kiếm và ứng tuyển việc làm của các bạnsinh viên khi vừa mới ra trường Website sẽ cung cấp cho các bạn một nơi có thể tìmthấy được việc làm ưng ý và cũng như cung cấp thông tin của các nhà tuyển dụng đểcác bạn có thể đảm bảo chất lượng cũng như tính chân thật để không bị lừa đảo dẫnđến những hậu quả không mong muốn Trong trang Web này các bạn ngoài việc xemthông tin của nhà tuyển dụng đó, các bạn còn có thể xem được những đánh giá trướcđó về nhà tuyển dụng mà các bạn đang ứng tuyển để tìm hiểu xem công ty đó, nhàtuyển dụng đó ra sao và có thông tin của nhà tuyển dụng để dễ tra cứu hơn.

Đối với các nhà tuyển dụng thì khi đăng tin tuyển dụng thì đặc biệt cần phải có sựchấp nhận của quản trị viên để xác nhận thông tin của nhà tuyển dụng đó, quản trịviên sẽ xem xét thông tin nhà tuyển dụng đang đăng ký và kiểm trả thông tin thật kỹcàng trước khi chấp thuận cho nhà tuyển dụng đó đăng tin tuyển ứng viên Việc nàynhằm tạo kết nối chặt chẽ giữa sinh viên và các nhà tuyển dụng, tránh trường hợp gặpcác nhà tuyển dụng lừa đảo hoặc đa cấp lừa sinh viên nên việc này giúp cho các bạnhọc sinh, sinh viên có thể bớt một phần lo lắng trong việc ứng tuyển không bị lừa mấttiền hoặc hậu quả khác.

Website quản lý việc làm có nhiều công dụng và có thể dễ dàng mở rộng trong tươnglai Tuy hiện nay cũng có một số trang Web tìm kiếm việc làm nổi như TopCV, Chợtốt… nhưng chúng em sẽ cố gắng tạo nên một trang Web quản lý việc làm hoàn thiệndễ sử dụng

Trang 15

Chương 1 GIỚI THIỆU ĐỀ TÀI

1.1 Giới thiệu

Hệ thống quản lý việc làm là một phần mềm được thiết kế để phát triển và hỗ trợ cácứng viên dễ dàng tìm được các việc phù hợp với bản thân Hệ thống còn là một môitrường tạo kết nối giữa ứng viên và các nhà tuyển dụng với nhau Hệ thống sẽ cungcấp một giao diện trực quan từ đó người sử dụng có thể dễ dàng hiểu và sử dụng đượcmột cách linh hoạt Ngoài ra nó còn cung cấp nhưng tính năng hỗ trợ đi kèm trong khisử dụng như việc xem các đánh giá về các nhà tuyển dụng, cập nhật thông tin hồ sơ,đưa lên những tin tuyển dụng mới để ứng viên có thể nắm bắt được những cơ hội mớinhất cho bản thân hoặc tìm kiếm nâng cao theo nhiều tiêu chí giúp việc tìm kiếm tintuyển dụng trở nên nhanh chóng hơn, phù hợp với nhiều nhu cầu hơn.

1.2 Mục tiêu đề tài1.2.1 Mục tiêu

Mục tiêu chính của đề tài quản lý việc làm này khi em xây dựng nên đó chính là giúpcho những người tìm việc (ứng viên) có thể tương tác với các công việc của nhà tuyểndụng một cách dễ hiểu và thuận lợi nhất Hệ thống cũng sẽ cung cấp chức năng xácnhận quyền của nhà tuyển dụng để tăng sự tương tác giữa quản trị viên và nhà tuyểndụng Ngoài ra hệ thống còn có chức năng tìm kiếm, đăng tin tuyển dụng để tăng khảnăng kết nối giữa người tuyển dụng và ứng viên.

1.2.2 Đối tượng nghiên cứu

Đối tượng nghiên cứu của đề tài nghiên cứu việc làm bao gồm các cá nhân, hoặc cáccông ty, các doanh nghiệp có liên quan đến việc cung cấp và tìm kiếm nhân lực và việclàm Đó có thể là người tìm việc như học sinh, sinh viên… muốn tìm kiếm công việcđể trang trải cuộc sống hoặc nhà tuyển dụng, trung tâm việc làm, cơ quan, tổ chức đàotạo việc làm.

1.3 Lý do chọn đề tài

Trong nhu cầu thực tế hiện nay, tìm kiếm việc làm có tầm ảnh hưởng rất lớn đếnnhững thế hệ trẻ hiện này vì số lượng các bạn trẻ ngày càng tăng nên nhu cầu tìm kiếmviệc làm cũng tăng cao theo đó Đặc biệt là các bạn học sinh, sinh viên hiện ở các vùng

Trang 16

xa lại càng không biết đâu là trang Website lừa đảo hoặc đâu là trang Website tìmkiếm việc làm chính chủ Nhiều học sinh, sinh viên đã hoặc từng bị lừa vào nhưngtrang Website lừa đảo, đa cấp khiến cho không ít những sinh viên ấy rơi vào tình trạngkhó khăn trong việc trang trải cuộc sống Từ đó chúng em có suy nghĩ tạo ra mộtWebsite tạo việc làm có thể đăng những bài tuyển dụng đã được người quản lý xácthực những nhà tuyển dụng một cách kỹ càng nhất để không xuất hiện những nhàtuyển dụng ảo hoặc đa cấp.

Ngoài ra còn do thị trường việc làm phong phú ngày càng có nhiều loại công việc phùhợp cho nhiều người, đặc biệt là trong thị trường hiện nay thì nổi nhất đó chính làngành Công nghệ thông tin vì ngành nó có thể có nhiều hướng đi cho sinh viên MộtWebsite quản lý việc làm thì có thể thu hút được nhiều người dùng và nhà tuyển dụngbiết đến để đăng bài, ứng tuyển tạo cơ hội kinh doanh giữa doanh nghiệp và ứng viên,tăng cao năng lực bản thân ứng viên Việc xây dựng Website quản lý việc làm còn cótính dễ mở rộng, tạo ra những chức năng tiện ích cho người dùng, có thể mở rộng ra vềnhững mục đích khác nhau liên quan đến việc làm.

Xây dựng một Website quản lý việc làm giúp cho em có thêm kinh nghiệm và rènluyện thêm về kỹ năng lập trình của chính bản thân mình, hiểu biết và học hỏi thêmnhiều điều từ việc tham khảo các Website quản lý việc làm khác để nâng cao kiến thứcvốn có của mình Hiểu và khác phục được những vấn đề trong khi phát triển sản phẩm,rút kinh nghiệm từ những sai sót đó để bù đắp vào sau này.

1.4 Bố cục báo cáo

Bố cục được chia thành 3 phần Phần 1 giới thiệu về các loại ngôn ngữ mà chúng emsử dụng và áp dụng vào môn Đồ án ngành như Spring Boot, ReactJS Phần tiếp theo sẽgiới thiệu về những chức năng của hệ thống, đồng thời giới thiệu về kiến trúc và quátrình phân tích hệ thống quản lý việc làm Cuối cùng là sự kết luận về hệ thống củabản thân và nêu ra những hướng đi và phát triển trong tương lai.

Trang 17

Chương 2 CƠ SỞ LÝ THUYẾT

2.1 Spring Boot

Trong quá trình phát triển Website quản lý việc làm, chúng em sử dụng ngôn ngữchính cho trang Website đó là Spring Boot vì ngôn ngữ này khá tiện lợi trong việc sửdụng qua lại giữa các lớp (class) persistence và Controller, Service qua Hibernate.

2.1.1 Tổng quan về Spring Framework

Spring Framework là một loại Framework được phát triển trên ứng dụng Web Java rấtlinh hoạt và mạnh mẽ, dễ sử dụng Vì vậy việc phát triển ứng dụng được đơn giản hoá,nó còn cung cấp các đặc tính, cung cấp các cấu hình mặc định và các tính năng diđộng Khi sử dụng Framework thì sẽ giúp cho chương trình giảm bớt những mã nguồnphức tạp, giúp chương trình xử lý và bắt đầu nhanh hơn vì Spring Framework là mộtloại framework trong suốt, không cần phải cấu hình và cài đặt quá nhiều thông số màchỉ cần tập trung vào logic của mã nguồn.

Đặc biệt trong Spring Framework còn có kỹ thuật mốc nối IoC (Inversion of Control)giúp cho chương trình dễ mở rộng, dễ khai báo các biến từ các gói hoặc các lớp khácnhau Ví dụ sau về việc mốc nối từ các class từ trong Package Service qua bên lớpindexController trong Package Controller chỉ bằng các Annotation @Autowire.

Hình 2.1.1.1 Minh hoạ IoC

Ngoài ra, Spring Framework còn cung cấp cho chúng ta các Annotation, là cách đểgắn kết với metadata vào trong mã nguồn Java Annotation cung cấp dịch vụ phổ biểncho trình duyệt, phân biệt các tác vụ với nhau ví dụ như các Annotation thường gặpnhư @Controller để biểu thị cho lớp đó là một lớp Spring Controller, là lớp có trách

Trang 18

nhiệm xử lý các yêu cầu từ HTTP và tương tác với người dùng, @Service biểu thị cholớp Service(lớp tác vụ) Spring Service trung gian thực hiện kết nối giữa lớpRepository và Controller xử lý logic mã nguồn Cuối cùng là @Repository biểu thị choSpring Repository, là lớp tương tác với dữ liệu và thực hiện các chức năngCRUD(Create, Read, Update, Deletete) dữ liệu.

Hình 2.1.1.2 Annotation @Repository

2.1.2 Kiến trúc Spring Framework

Kiến trúc của Spring Framework gồm 3 thành phần chính là Data Access/Intergraiton,Web và Core Container Ngoài 3 thành phần chính trên còn có AOP (Aspect -OrientedProgramming) là lập trình hướng khía cạnh giúp và bổ trợ cho lập trình hướng đốitượng trong Java.

Hình 2.1.2.3 Kiến trúc Spring Framework Runtime

Trang 19

Data Access/intergration là nhóm bao gồm JDBC, ORM, OXM, JMS là những kỹthuật cung cấp giao tiếp với Database ví dụ như ORM sẽ cung cấp cho chúng ta JPAvà Hibernate để tương tác với các lớp persistence trong Java Trong ví dụ Hibernatedưới đây, câu lệnh query đã “FROM City” là lấy đối tượng City từ trong lớp POJOchứ không phải lấy từ bảng City trong cơ sở dữ liệu.

Phần quan trọng nhất của kiến trúc Spring Framework đó chính là Core Container.Thành phần Core module là nơi cung ứng cho chúng ta các chức năng như IoC, DI(Dependency Injection) [3] Beans sẽ cung cấp 1 BeanFactory là nơi tạo ra các @Beandùng để cấu hình, tạo mới hoặc xoá các Bean đó Beans được cấu hình thông qua FileXML Context hay còn gọi là giao diện ApplicationContext, là nơi cấu hình và kết hợpcác Bean lại với nhau

Hình 2.1.2.4 Cấu hình context:annotation-config

2.1.3 Tổng quan về Spring Boot

Khi nói về Sring Framework thì ta không thể không nhắc đến Spring Boot, đây có thểxem là một phần dự án nhỏ trong Spring Framework được tạo ra để việc vận hànhcũng như cấu hình hệ thống của dự án trở nên dễ dàng hơn và đáp ứng nhiều nhu cầucủa lập trình viên hiện nay Ngoài ra cấu trúc của Spring Boot cũng được xây dựngdựa trên nền tảng của Spring Framework vì vậy khi sử dụng Spring Boot sẽ giúpchúng ta càng hiểu hơn về những cấu trúc bên trong của Spring Framework.

Spring Boot được phát triển bới công ty Pivotal Software có trụ sở tại San Francisco.Spring Boot là một dự án về mà nguồn mở và được phát triển mạnh mẽ bởi cộng đồnglập trình viên trên toàn thế giới.

Trang 20

Hình 2.1.3.5 Công ty Pivotal Software

Khi sử dụng Spring Boot chúng ta sẽ cảm thấy nó thực thi chương trình được mượt màhơn mà không cần thực hiện quá nhiều bước Vì khi cài đặt và sử dụng, nó đã tạo ranhiều lợi ích mà chúng ta không cần phải làm.

Auto Config: Thay vì người dùng tự cấu hình sẽ tốn nhiều thời gian nhưng khi dùngSpring Boot sẽ tự động cấu hình các phần cần thiết cho người sử dụng vì vậy ngườidùng chỉ cần Build Code sau đó là chạy chương trình bình thường.

Xây dựng Annotation: Thay vì sử dụng các File XML thì ở Spring Boot sẽ thay thếngắn gọn bằng các @Bean sử dụng kỹ thuật IoC giúp cho việc khai báo trở nên nhanhchóng và bớt phức tạp Trong ví dụ ta thấy được một Annotation Bean của Cloudinarychỉ cần cấu hình các thuộc tính của biến cloudinary một cách dễ dàng và dễ hiểu Saukhi cấu hình xong thì có thể gọi và sử dụng biến đó trong các lớp khác.

Hình 2.1.3.6 Annotation @Bean

Sử dụng Server Tomcat: Khi sử dụng Tomcat chúng ta chỉ cần cài đặt Server Tomcatlà có thể đơn giản hoá việc triển khai các File JAR vì giảm bớt việc cấu hình Nó còngiúp cho các File JAR được tối ưu tài nguyên vì chỉ cần đưa ra các thư viên và tàinguyên cần thiết khi sử dụng ứng dụng đó, việc này giúp tăng hiệu suất cho chươngtrình.

Trang 21

Hình 2.1.3.7 Server Tomcat

Tuy Spring Boot có rất nhiều tiện lợi nhưng đi cùng với đó là không ngừng học hỏi vềSpring Boot vì để sử dụng thành thạo và dễ dàng bạn cần phải có các kiển thức cơ bảncủa phần Java Core như Java, OOP, API,… ,việc quản lý các Package và cuối cùng làJPA để có thể kết nối và tương tác giữa cơ sở dữ liệu với phần Java Core kể trên

2.1.4 Kiến trúc về Spring Boot

Kiến trúc Spring Boot được tạo ra dựa trên Spring Framework vì vậy nó sẽ bao gồmcác module trong Framework Kiến trúc gồm 4 tầng với các tác vụ khác nhau.

Hình 2.1.4.8 Kiến trúc Spring Boot

Presentation Layer hay còn gọi là Controller layer (lớp điều khiển) là lớp trên cùng củaSpring Boot được dùng để xử lý các HTTP và các Request được gửi từ server vềclient.

Business Layer hoặc là Lớp xử lý Logic, là lớp xử lý các dữ liệu và thức hiện các yêucầu phức tạp của mã nguồn Business Layer đảm bảo rằng các hàm xử phải đúng vớitác vụ khi được gọi ở lớp Presentation Layer Lớp này giúp cho mã nguỗn có thể dễbảo trì và mở rộng.

Persistence Layer là tầng tương tác và quản lý cơ sở dữ liệu Lớp này cũng giống nhưData Access/Intergration trong kiến trúc của Spring Framework.

2.1.5 Hibernate

Hibernate là một Framework đã được giới thiệu ở phần cấu trúc Spring Frameworktrước đó ở Hình 2.1.2 3 Hibernate sử dụng ORM giúp Java đặt được năng suất cao

Trang 22

trong việc truy vấn dữ liệu trong Database Hibernate hỗ trợ những ứng dụng liênquan đến cơ sở dữ liệu như MySQL, SSMS…

Chúng ta cần phải cấu hình Hibernate để tạo sự liên kết giữa database và các lớp trongPOJO Một phần sẽ từ hàm kết nối các bảng trong POJO và một phần sẽ từ hàm kháclấy dữ liệu và đóng vai trò kết nối đến database của máy tính sẽ bao gồm các thànhphần như driverClass, username, password…

Hình 2.1.5.9 Kết nối database

Khi sử dụng Hibernate sẽ giúp cho người sử dụng dễ dàng ánh xạ đến các thuộc tínhcủa đối tượng hiện tại trong lớp persistence mà không cần nhìn vào trong các bảng củacơ sở dữ liệu [4] Chúng ta có thể tạo ra các lớp Persistence dựa vào lớp có sẵn củachương trình.

Hình 2.1.5.10 Class persistence từ Database

Sau khi chọn các bảng từ trong Database thì chúng ta sẽ nhận được các lớp trong góiPOJO đúng theo tên các bảng trong Database.

Trang 23

Hình 2.1.5.11 Kết quả từ persistence

Bên trong các lớp sẽ có các biến tương ứng với các cột/thuộc tính trong cơ sở dữ liệuvà được gắn các Annotation để xác định các mối quan hệ như một-nhiều, nhiều-nhiềutrong Database, khi tạo ra các lớp sẽ có những câu truy vấn cơ bản có sẵn do hàm tạora trong Anntation @NamedQuery [4].

Hình 2.1.5.12 Class trong Persistence

Hibernate có cấu trúc khá đơn giản Cơ sở dữ liệu sẽ tương tác với JDBC và được gọiqua các Session Factory hoặc các câu Query để tương tác với các Persistence Objectvà trả về các kết quả tìm được Trong Java khi mọi người thường dùng từ POJO (PlainOld Java Object) hơn là Persistence Object, thì khi Hibernate tương tác với các đốitượng trong mỗi lớp của POJO thì những đối tượng trong lớp đó cần phải có nhữngyêu cầu sau để Hibernate có thể tương tác dễ dàng hơn như các phương thức không cótham số, phải khai báo Private và phải có phương thức Getter và Setter và các lớpkhông kế thừa tường minh.

Trang 24

Hình 2.1.5.15 Minh hoạ Hibernate

Trang 25

2.1.6 Tổng quan về Spring MVC

Web (MVC -Remoting) hay còn được biết đến là Spring MVC Đây là phần nổi trộinhất của Spring Framework vì nó là nơi thực hiện các đặc trưng của Core module ởCore Container đó là IoC và DI Mô hình MVC bao gồm có Model-View-Controller.Model là nơi lưu trữ và xử lý logic các đối tượng trong Persistence Class (các lớptương tác với cơ sở dữ liệu)

View là nơi đại diện cho người dùng ứng dụng, sử dụng khuôn mẫu JSP cùng vớiJSTL (Java Standard Tag Library) để có thể sử dụng các Restful của Service Ví dụ vềTag Library về Spring Security và JSTL trong File JSP

Hình 2.1.6.16 Thư viện JSTL - Spring Security

Một số thẻ thông dụng thường thấy khi sử dụng thư viện tag lib như của JSTL Core tacó thẻ <c:if> để chứa điều kiện hoặc <c:forEach> để tạo vòng lặp xuất ra các dữ liệucủa nhiều đối tượng.

Trang 26

DispatcherServlet sẽ gọi những phương thức phù hợp trong Controller để xử lý yêucầu của người dùng như GET, POST, DELETE…DispatcherServlet sẽ dùngViewResolver để tìm đến những File JSP tương ứng với Controller của trang Web đóvà những lớp Controller khi được DispatcherServlet gọi thì phải gắn @Controller hoặc@RestController để nó có thể nhận diện được đó là lớp thuộc Controller.

Hình 2.1.6.18 Load jsp

Trong hình minh hoạ trên ngoài return “index” để trả về đúng yêu cầu người là vềtrang index.jsp thì còn có @RequestMapping để vào trang /index.jsp còn có@RequestParam để hiển thị các tham số lên thanh URL

Hình 2.1.6.19 @RequestParam

Ngoài RequestMapping để chuyển trang và RequestParam chúng ta còn có mộtAnnotation được sử dụng thường xuyên đó là @PathVariable để hiển thị phần chúngta lên trên thanh URL, nó cũng có công dụng cũng khá giống với RequestParam nhưngkhông được sử dụng như RequestParam

Hình 2.1.6.20 @PathVariable

Trong Hình 2.1.6 20 ta thấy được trong @GetMapping chúng ta có /JobDetail/{id}thì {id} đó sẽ được nhận dạng từ biến int id bên dưới truyền lên và phần AnnotationPathVariable để nhận diện rằng biến int id bên dưới đó sẽ truyền vào đâu thì thuộc tínhvalue sẽ gán biến int id vào trong {id} đó

Trang 27

RequestParam PathVariableCách sử dụng Dưới dạng câu lệnh

Query hoặc URL Dưới dạng URLKiểu tham số Dưới dạng Query String/

Form Data

Dưới dạng URLBắt buộc truyền giá trị NOT NULL NOT NULL

Số lượng tham số Một hoặc nhiều tham số Duy nhất một tham sốBảng 2.1 phân biệt RequestParam và PathVariable

Khi sử dụng Spring MVC chúng ta sử dụng thành phần Apache Tiles (mộtFramework) giúp cho việc tái sử dụng mã nguồn của các trang Web trở nên tối ưu hơnvà tiết kiệm tài nguyên hơn khi xây dựng phần Front-End Tiles giúp cho chúng ta táchra những phần dùng chung cho tất cả các trang Web như Header, Footer hoặc các khaibáo <script> của bootstrap hoặc jquery ở một trang chung sau đó lắp ghép sẵn vào các

Trang 28

trang Web mới trong chương trình Đầu tiên tạo thư mục Tiles.XML để khai báo cáctrang Web để sử dụng các thành phần chung kể trên.

Hình 2.1.6.23 Phần chung

Ở đây chúng ta dùng thẻ <definition> để định nghĩa từng phần cũng như định nghĩatrang Web nào sẽ hiện các thành phần đó lên khi chạy chương trình.Trong hình ảnhtrên là định nghĩa 3 thành phần base, header và footer của mỗi trang Web sẽ có 3 thànhphần dùng chung đó, còn dưới đây là định nghĩa để từng trang Web có thể sử dụng 3thành phần trên.

Hình 2.1.6.24 Khai báo

Khi khai báo 1 trang Web dùng những thành phần chung đó thì chúng ta sẽ cho trangWeb đó kế thừa (extends) lại thành phần baseLayout đã khai báo ở phần ví dụ trước đóvà gán đường dẫn dẫn đến trang Web đó trong thư mục của chương trình ở phần“value”

Thêm vào đó Spring MVC còn có phần đọc File Properties giúp cho lập trình viên tăngphần bảo mật các thông tin cần thiết hoặc cũng như kết hợp với khác như việc thôngbáo các Message khác nhau Đầu tiên chúng ta tạo 1 File Properties để chứa các thôngtin cần thiết để gọi ra

Trang 29

Hình 2.1.6.25 File Properties

Khi khai báo ở đây thì chúng ta chỉ cần gọi phần bên trái ra chứ không cần khai báotrực tiếp phần bên phải ra trong chương trình, nó góp phần bảo mật những phần quantrọng mà chúng ta không muốn bị lộ ra từ bên ngoài Sau đây là một ví dụ để lấy ra cácthành phần của cloudinary có trong File Properties (lưu ý cần phải khai báo@PropertiesSource để đọc được File có đuôi là properties)

Hình 2.1.6.26 Khai báo Properties

Ta thấy được chúng ta không cần gọi trực tiếp các dữ liệu ra mà chỉ cần gọi trong câulệnh getProperty() đúng tên với phần bên trái thì chương trình sẽ được ánh xạ đúngvào thành phần bên trái của File Properties.Trong Spring MVC, khi muốn kết nối dữliệu lấy được giữa các hàm với View (jsp) thì chúng ta sẽ có một hàm “addAttribute”.

Hình 2.1.6.27 addAttribute

Đầu tiên, chúng ta sẽ khai báo một biến Model để nhận dữ liệu và sử dụng hàmaddAttribute từ Spring Framework có sẵn, biến Model này sẽ giúp chúng ta kết nốigiữa View và Controller với nhau Như trong hình 2.1.6.12 ta thấy được khi gọi hàmgetCity để lấy toàn bộ các Thành phố trong cơ sở dữ liệu thì tất cả các dữ liệu lấy đượcsẽ được đưa vào trong model có tên là “CITY” Nếu như muốn lấy các dữ liệu đó ra

Trang 30

thì bên View chúng ta sẽ sử dụng thư viện TagLib đã ví dụ về các TagLib thông dụngđã nói ở bên trên Hình 2.1.6 17.

Hình 2.1.6.28 Sử dụng Model

Chúng ta sẽ sử dụng thư viện của JSTL để tạo ra vòng lặp forEach với items mà chúngta truyền vào đó là tên model CITY mà chúng ta đã tạo ra trước đó bên Controller dướidạng 1 tên khai báo là var=”ct” Khi đó tất cả các dữ liệu trong model CITY sẽ đượcthay thế ngắn gọn bằng ct để lập trình viên dễ gọi ra những thuộc tính trong bảng City.Trong từng thẻ option sẽ được gán 1 giá trị value đó là id của City hiện tại vàct.nameCity sẽ hiển thị ra tên của từng thành phố vào trong thanh select đó.

2.1.7 Các thành phần cấu hình khác2.2 ReactJS

2.2.1 Giới thiệu ReactJS

ReactJS là một thư viện mở rộng của JavaScript được sử dụng phổ biến rộng rãi trênthế giới, ReactJS được sử dụng để tạo ra giao diện người dùng và được phát triển bởiFacebook [5].

ReactJS sử dụng kiến trúc dựa trên các thành phần (components) để xây dựng nên giaodiện người dùng Điều này giúp cho việc bảo trì và mở rộng của ReactJS trở nên dễdàng và tiện lợi vì nó giúp cho mã nguồn trong khi viết bằng ReactJS có thể dễ đọchơn vì đa phần các ngôn ngữ khác sẽ cảm thấy rất khó để đọc được các thành phần đãliên kết nằm ở đâu và đã được gọi ra khi nào

ReactJS sử dụng cú pháp JSX (JavaScript XML) là một cú pháp để viết những thànhphần và thẻ trong HTML trong cùng 1 File JavaScript [5] Điều này giúp cho việc đọcmã nguồn khi vừa viết HTML vừa chỉnh sửa các chức năng trong JavaScript trở nêndễ đọc và dễ hiểu rằng chúng đang được gọi ra ở đâu.

Trang 31

Hình 2.2.1.29 HTML và Javascrip

Cấu trúc ReactJS của một Project cơ bản sẽ gồm các một nơi để chứa các componentđể gọi lên các View và một nơi để cấu hình các API gọi từ Axios.

Hình 2.2.1.30 Cấu trúc Project ReactJS

Khi cấu hình xong các component thì chúng ta phải khai báo vào trong App.js đểchương trình ánh xạ đến các component đó và trả ra View của từng component Lưukhi sử dụng thẻ có liên quan đến Router thì chúng ta cần phải cài đặt react router trướcbằng cách mở một Terminal CMD và gõ lệnh “install react-router-dom@6” để sửdụng các thư viện router để ánh xạ đến từng đường dẫn path dựa vào từng thành phầnđược khai báo trong element như trong ví dụ thì đường dẫn mặc định path=”/” sẽ dẫnđến thành phần thẻ <Home> là component được tạo ra từ Home.js cũng chính là trangWeb Home.

Hình 2.2.1.31 Khai báo component Home và Login

Ngày đăng: 13/06/2024, 09:37

Tài liệu cùng người dùng

Tài liệu liên quan