1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Lập trình ứng dụng web với java spring boot

24 12 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Lập trình ứng dụng web với java spring boot
Tác giả Bùi Như Phước
Người hướng dẫn Thạc sĩ - Kĩ sư Âu Mậu Dương
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Khoa Công nghệ phần mềm
Thể loại Báo cáo thực tập
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 24
Dung lượng 4,92 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

KHOA CÔNG NGHỆ PHẦN MỀMBÁO CÁO THỰC TẬP LẬP TRÌNH ỨNG DỤNG WEB VỚI JAVA SPRING BOOT Người phụ trách : Thạc sĩ - Kĩ sư Âu Mậu Dương TP... Với nhu cầu đó, việc xây dựng và phát triển các ứ

Trang 1

KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP

LẬP TRÌNH ỨNG DỤNG WEB VỚI JAVA

SPRING BOOT

Người phụ trách : Thạc sĩ - Kĩ sư Âu Mậu Dương

TP Hồ Chí Minh, tháng 12 năm 2022

Trang 2

LỜI MỞ ĐẦU

Ngày nay, với sự phát triển mạnh mẽ của Internet, vai trò của website cũng như các ứng dụngweb đã và đang trở nên rõ ràng hơn bao giờ hết trong tất cả các lĩnh vực, tính đến năm 2021, cóhơn 1,8 tỷ website đang hoạt động trên Internet Có thể nói, Website chính là sản phẩm tốt nhấtcủa internet khi mang đến những lợi ích vô cùng to lớn cũng như đem lại rất nhiều cơ hội chochính người sử dụng

Với những đặc điểm ưu việt, website đang được áp dụng triệt để trong công tác quảng bá, quảngcáo, quản lý, xây dựng thương hiệu cho các doanh nghiệp Chỉ riêng tại Việt Nam, đã có hơn42% doanh nghiệp đã xây dựng website riêng và con số đó đã liên tục tăng mạnh qua nhiềunăm Với nhu cầu đó, việc xây dựng và phát triển các ứng dụng web đang ngày càng được chútrọng và nhiều framework đã ra đời để hỗ trợ điều đó điển hình chính là Java Spring Boot.Trước thị trường xây dựng website rất phát, ngày càng nhiều công ty ra đời và một trong nhữngcông ty phần mềm chuyên thiết kế website cực kì uy tín tại Việt Nam không thể không nhắc đếnchính là Công ty TNHH Phần mềm FPT

Chính sự cần thiết và nhu cầu của xây dựng website, webapp đang tăng nhanh, việc làm vàtuyển dụng kỹ sư lập trình web cũng ngày càng nhiều Vì những lý do đó, em quyết định lựachọn con đường lập trình web là định hướng cho việc học tập của mình

Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như muốnđược tham gia làm webapp trong một môi trường chuyên nghiệp, em có dự định là sẽ thực tậptrong hè Vì vậy, em quyết định chọn FPT software - một môi trường lý tưởng, hiện đại,chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này

Trang 3

Đặc biệt cảm ơn anh Âu Mậu Dương, đã hướng dẫn rất kĩ phần nền tảng lý thuyết và tập trungnhững kỹ năng quan trọng cũng như giúp đỡ cho chúng em tận tình cả những khó khăn trongcông việc, đến những khó khăn việc làm quen với môi trường mới; cảm ơn anh Thành đãtraining module Spring boot, hỗ trợ chúng em rất nhiều về các vấn đề kỹ thuật và áp dụng vào

dự án thực tế; cảm ơn chị Phạm Hồng Thắm, đã chỉ dẫn chúng em về cách viết mail, cách làmbáo cáo, lên kế hoạch, những kỹ năng, văn hóa không thể thiếu trong công sở

Em cũng xin cảm ơn quý thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điềukiện em làm bài báo cáo này

Bùi Như Phước

Trang 4

TP HCM, ngày 23/12/2022

NHẬN XÉT CỦA KHOA

Trang 5

MỤC LỤC

1 Gi i thi u công ty TNHH ph n m m FPT (FPT Software) ớ ệ ầ ề 6

∙ Tìm hi u v Spring Framwork và Hibernate, Spring JPA ể ề 10

∙ L p trình Spring boot và Spring Security ậ 11

Trang 6

CH ƯƠ NG 4: T NG K T Ổ Ế 21

Trang 7

Chương 1: Giới thiêu công ty thực tập

1 Giới thiệu công ty TNHH phần mềm FPT (FPT Software)

Công ty TNHH phần mềm FPT (hay còn được biết đến với tên gọi FPT Software) đượcthành lập ngày 13/01/1999, là một thành viên của Tập đoàn FPT FPT Software ra đời vớihướng đi chiến lược là xuất khẩu các dịch vụ phần mềm, trở thành một mắt xích quan trọnggiúp tập đoàn viết tiếp giấc mơ toàn cầu hóa, đưa trí tuệ Việt vươn ra thế giới

Hiện tại FPT Software đáp ứng nhu cầu gia công phần mềm lớn cho hơn 150 công ty hàng đầutại 20 quốc gia lớn nhất trên thế giới hiện nay với các hợp đồng lớn có khi đạt cả 1 triệu USDdành cho một số đối tác lớn như Hitachi, NEOPOST, Petronas, Deutsche Bank, và Unilever vớihơn 4000 nhân viên trên toàn thế giới

FPT Software theo đuổi mục tiêu gia công phần mềm để đáp ứng cho nhu cầu phát triển CNTTcủa các hãng phần mềm trong nước, các công ty lớn trong nước và tham vọng hơn là xuất khẩuphần mềm trên toàn thế giới cho các công ty nước ngoài biết đến tập đoàn FPT, mục đích chính

là vươn đến tầm cao mới thông qua công nghệ nhằm nâng cao năng suất lao động

2 Sản phẩm của công ty

Với bề dày gần 26 năm trong việc tạo dựng và phát triển các mô hình kinh doanh quy mô lớntrong lĩnh vực phần mềm, FPT Software cung cấp các dịch vụ đạt tiêu chuẩn quốc tế ở cácmảng:

● Dịch vụ phần mềm truyền thống (Application Services, Business Application Services,Legacy Migration, Testing & BPO);

● Dịch vụ Digital Age services (Cloud, Mobility, Analytics & Internet of Things)

● Dịch vụ Product Engineering bao gồm Embedded System, CAD/CAM và IC Design

Trang 8

Với tham vọng trở thành công ty được hướng dẫn bởi những đổi mới công nghệ, cam kết đemlại sự hài lòng cao nhất cho khách hàng, góp phần vào sự phát triển thịnh vượng của quốc gia vàcung cấp cho nhân viên môi trường làm việc thuận lợi nhất, FPT Software đã tạo nên sự khácbiệt cho mình nhờ 5 yếu tố:

● Chất lượng dịch vụ đạt chuẩn thế giới

● Đáp ứng được nhu cầu khắt khe của các công ty hàng đầu

● Luôn đi đầu về công nghệ

● Nguồn nhân lực chuyên nghiệp

● Giá thành cạnh tranh

Trang 9

Chương 2: Nội dung thực tập

Đợt thực tập với chủ đề “LẬP TRÌNH ỨNG DỤNG WEB VỚI JAVA SPRING BOOT” nhằmmục đích giúp sinh viên thực tập được đào tạo toàn diện về lập trình ứng dụng web bằng javaspring framework, đồng thời rèn luyện những kỹ năng mềm như làm việc nhóm, thuyết trình,giao tiếp Tại công ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong một môitrường phát triển phần mềm chuyên nghiệp

1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty

Nội dung : Giới thiệu về công ty, cách tổ chức của công ty

Được nghe người phụ trách giới thiệu về công ty, quá trình thành lập và phát triên (như

đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức của công ty

Ngoài ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công ty như thờigian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công việc…

Kết quả : Hiểu thêm về công ty, quá trình thành lập và phát triển Có thêm các kỹ năng

về việc sử dụng email trong công việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn

2 Nghiên cứu kỹ thuật

● Các công cụ làm việc

Nội dung : Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc.

Trong thời gian này, supervisor đã hướng dẫn thực tập sinh tìm hiểu về các công cụ sẽgiúp ích cho trong công việc sau này Các công cụ và IDE được sử dụng chính là MicrosoftSQL Server để quản lý database, Eclipse và IntelliJ để lập trình java và spring boot, ngoài racòn một số công cụ khác như Github, SourceTree, Docker, DBeaver để hỗ trợ quá trình thựchiện dự án

Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.

Kết quả : Lập trình sử dụng các công cụ miễn phí, giúp dễ dàng kết hợp các công cụ với

nhau, so với việc dung các IDE

● Tìm hiểu về SQL và Microsoft SQL server

Nội dung training:

o Database Concepts và ER Model

o Giới thiệu SQL và SQL Server

o DML Statements

o Advance DML Statements

o SQL Joins

o Sub-Queries và thực hành

Trang 10

Thực hiện:

- Tham gia đầy đủ các buổi training của công ty

- Làm các bài thực hành, kiểm tra về kiến thức đã học

Kết quả :

- Nắm chắc các kiến thức căn bản của SQL

- Áp dụng xây dựng cơ sở dữ liệu cho dự án

- Có kiến thức phỏng vấn về SQL

● Tìm hiểu ngôn ngữ Java core

Nội dung : Được training gần như tất cả các kiến thức cần thiết của java core, chi tiết

gồm có:

- Java Introduction

- Control Flow Statements

- Classes and Object

- Java Polymorphism and Abstraction

- String and Collections

- Java Set Collection

- Java Map Collection

- Exception Handing in Java

- Basic Java IO

- Programming with JDBC

- Java Application Debugging

- Coding Conventions and Best Practices

- Testing with JUnit in Java

Trong đó, thực tập sinh được tập trung kĩ vào các phần như:

o Lập trình hướng đối tượng: Các kiến thức cơ bản về lập trình hướng đối tượngnhư khái niêm, các đặc tính như tính kế thừa, tính đóng gói, tính ảo hóa, tính đa hình Ngoài ra,thực tập sinh còn được hướng dẫn về cách thiết kế lớp căn bản trong Java web

o Java collection: tìm hiểu về các collection interface của Java như Set, List, Queue,Map, nắm chắc khái niệm và cách sử dụng, áp dụng cho các trường hợp cần thiết

o Kiến trúc JDBC: học cách dùng JDBC API dùng để kết nối và thực thi các câulệnh SQL xuống database

o Debugging và Testing với Unit test trong Java: học cách debug bằng eclipse vàcách test ứng dụng Java bằng Unit Test

o Coding convention: học cách đọc coding convention của công ty và áp dụng vàoproject thực tế

Thực hiện :

- Tham gia đầy đủ các buổi training của công ty

- Làm các bài thực hành, kiểm tra về kiến thức đã học

Trang 11

- Nâng cao kỹ năng lập trình với ngôn ngữ Java.

- Có được những kiến thức quan trọng cho việc lập trình web app sau này

- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúngchuẩn, dễ đọc, dễ hiểu

● Lập trình Frontend với HTM, CSS và JS

Nội dung: Các kiến thức căn bản về HTML, CSS và JS, từ đó có thể áp dụng vàotạo ra giao diện website cá nhân và sẵn sàng học lên các Framework hiện đại hơn Nộidung trainning chi tiết gồm có:

Cụ thể, thực tập sinh được tập trung vào phần sử dụng Bootstrap và Jquery

để tạo giao diện tương tác với người dùng hoặc nhận API từ phía backend

Thực hiện:

- Tham gia đầy đủ các buổi training của công ty

- Làm các bài thực hành, kiểm tra về kiến thức đã học

Kết quả:

- Trang bị kiến thức nền tảng về HTML, CSS và JS để có thể học tiếp cácFramework dành cho Frontend

- Tự xây dựng được giao diện căn bản của project

● Tìm hiểu về Spring Framwork và Hibernate, Spring JPA

Nội dung: chi tiết gồm các phần:

Trang 12

o Tính năng JPA

o Kiến trúc JPA

o Mối quan hệ class JPA

o Triển khai JPA

o Object-Relation Mapping (ORM)

o Phiên bản JPA

o Sự khác biệt giữa JPA và Hibernate

o Dữ liệu khởi động Spring Boot JPA

o Ví dụ về Spring Boot JPANội dung học tập trung nhiều đến phần Spring JPA và áp dụng vào project mẫu để thaotác với dữ liệu

Thực hiện:

- Tham gia đầy đủ các buổi trainning

- Làm các bài tập thực hành như thêm, xóa, sửa các đối tượng

- Tìm kiếm tài liệu trên mạng để tìm hiểu thêm

Kết quả:

- Nắm được cách hoạt động của Spring JPA

- Áp dụng để thao tác với cơ sở dữ liệu bằng JPA

● Lập trình Spring boot và Spring Security

Nội dung: Các kiến thức về Spring Boot và Spring Security

- Có thể xây dựng được một trang web CRUD căn bản

- Login phân quyền và bảo mật với JWT

3 Thực hiện project

Sau hơn 1 tháng được training và thực hành, thực tập sinh đã nắm được những kiến thực cơ bản

về Java Spring boot Trong tháng thứ hai và ba, trainer đã hướng dẫn thực tập sinh áp dụngnhững kiến thức đã học để thực hiện một website bằng java spring boot

Chi tiết đồ án sẽ được nói ở phần sau

4 Lịch làm việc

Tuần Công việc Người hướng dẫn Mức độ hoàn

thành

Nhận xét của người hướng dẫn

Trang 13

- Làm bài test Java

Anh Âu Mậu

số giao diện căn bản

- Load data từ Api

mẫu

Anh Âu Mậu

4 -Spring Framwork và Tìm hiểu về

Hibernate, Spring JPA

Anh Âu Mậu

sơ đồ database, kết nối

với project bằng spring

- Thiết kế giao diện

quản lý của admin đơn

giản bằng thymeleaf với

bootstrap 5, HTML5,

Jquery

Anh Bùi Công

8 - Thiết kế giao diện

client bằng Thymeleaf Anh Bùi Công Thành 100%

Trang 14

- Đăng nhập phân quyền

với spring security

Anh Bùi Công

Trang 15

Chương 3: Chi tiết về project

1 Tên đề tài và mô tả

Tên đề tài: Xây dựng website quản lý trường mầm non

Mô tả đề tài: Website quản lý trường mầm non là một ứng dụng web xây dựng trên nền tảngInternet Được sử dụng bởi bộ phận quản lý, nhân viên của trường mầm non giúp họ có thểquảng bá trường học, thống kê, thực hiện các công tác quản lý học sinh, chương trình học, lớphọc, thời khoá biểu, đơn giản hoá các quy trình nhập học, tư vấn, và đăng tải, chia sẻ cácthông tin, sự kiện của trường hay những kiến thức bổ ích cho quý phụ huynh

2 Lý do chọn đề tài và nhu cầu thực tế

Giáo dục mầm non là cấp học đầu tiên trong hệ thống giáo dục, đặt nền móng cho sự pháttriển toàn diện con người Giáo dục mầm non nhằm phát triển toàn diện trẻ em về thể chất,tình cảm, trí tuệ, thẩm mỹ, hình thành yếu tố đầu tiên của nhân cách, chuẩn bị cho trẻ em vàohọc lớp một Chính vì vậy, việc đầu tư một môi trường giáo dục mầm non chất lượng cho trẻđang trở thành một mối quan tâm rất lớn đối với bậc phụ huynh dẫn đến ngày càng nhiềutrường mầm non tư thục ra đời với rất nhiều chương trình học đổi mới và sáng tạo, nhằm đemđến một môi trường học tập và phát triển tốt nhất cho trẻ Và để có thể quảng bá, giới thiệumái trường của mình đến với quý bậc phụ huynh cũng như tạo sự thuận tiện trong công tácquản lý của nhà trường và đơn giản hoá các quy trình nhập học, tư vấn, nhu cầu xây dựngcác website quản lý trường học ngày càng tăng lên và đó chính là lý do em thực hiện đề tàinày với mong muốn sẽ tạo ra một sản phẩm hữu ích cho các trường mầm non tư thục

3 Phạm vi thực hiện

Đối tượng: Nhân viên quản lý, giáo viên, hiệu trưởng các trường mầm non có nhu cầu xâydựng website để quảng bá trường học và thực hiện các công tác quản lý cho trường

Môi trường sử dụng: Bất kì thiết bị nào hỗ trợ trình duyệt Web và có thể truy cập Internet

4 Nội dung nghiên cứu

Nghiên cứu, tìm hiểu về công nghệ Spring, Hibernate và Thymeleaf Tìm hiểu những best

Trang 16

practices tương ứng với những công nghệ này và áp dụng thực tế.

Nghiên cứu các quy tắc thiết kế nhằm bảo mật dữ liệu và bảo vệ hệ thống khỏi sự tấn công từ các tác nhân bên ngoài

Nâng cao và củng cố kĩ năng xây dựng một hệ thống chạy thực tế với quy mô vừa và nhỏ

Tìm hiểu về quá trình vận hành của một trường mầm non tư thục, nắm được các quy trình nhập học, tư vấn, đơn giản hoá và đưa lên trang web

5 Phương pháp thực hiện

Thực hiện đề tài theo các bước:

● Phân tích đề tài: Tìm hiểu những khó khăn hạn chế trong việc quản lý bằng

phương pháp truyền thống, đồng thời đề xuất giải pháp dưới dạng hệ thống tự

động nhằm giúp các quy trình diễn ra hiệu quả hơn và đơn giản hơn

● Tham khảo một số hệ thống tương tự ở nhiều trang Web khác

● Phân tích các yêu cầu đã thu thập được

● Nghiên cứu công nghệ để áp dụng

● Phát triển sản phẩm qua các giai đoạn, đồng thời nhận ý kiến phản hồi

● Kiểm thử và hoàn thiện

● Cài đặt môi trường để triển khai và chạy thử nghiệm, sau đó là chạy thực tế hệ

Trang 17

Hệ thống cung cấp một giải pháp hỗ trợ quản lý hữu ích cho các trường mầm non:

● Hỗ trợ quản lý học sinh, chương trình học, lớp học, giáo viên, thời khoá biểu, các

bài viết,

● Với nhu cầu chia sẻ những kiến thức hay đến các bậc phụ huynh, hệ thống có tính

năng đăng bài blog

● Với nhu cầu tối ưu hoá quy trình nhập học, tư vấn, hệ thống có tính năng đăng kí

nhập học, tư vấn online và có gửi thông báo nhắc nhở quản trị viên

● Với nhu cầu hỏi đáp, góp ý về trường học, hệ thống cung cấp tính năng Bình luận

dưới mỗi bài đăng và tính năng "liên hệ" để người dùng bày tỏ

● Ngoài ra, hệ thống còn hỗ trợ phân quyền đăng nhập, thống kê các nội dung quan

trọng của trường, hỗ trợ thông báo đế quản trị viên khi có nhu cầu tư vấn từ phụ

huynh

7 Sơ đồ ERD

Trang 18

8 Hình ảnh giao diện

- Giao diện client:

Trang 20

- Giao diện quản lý của admin

Trang 23

CHƯƠNG 4: TỔNG KẾT

1 Đánh giá chung

Trong hơn 3 tháng thực tập tại FPTsoftware, em đã có một trải nghiệm rất tuyệt vời khibắt đầu từ con số không với mảng phát triển ứng dụng web bằng Java Em đã học được các kiếnthức cần thiết nhất để có thể thực hiện một trang web bằng Java Spring boot Ngoài những kiếnthức về công nghệ, em còn học được các làm việc với các dự án thực tế và rất nhiều kĩ năngmềm cần thiết trong môi trường làm việc chuyên nghiệp - những kiến thức và kinh nghiệm rấtcần thiết cho công việc của em sau này

● Biết cách xử lý khi bước chân vào các dự án lớn, biết cách đọc code và nắm luồng hoạtđộng cũng như debug

● Cải thiện kĩ năng dùng GIT và kĩ năng đọc Document

● Biết cách code theo các Coding Convention đã được đề ra của dự án

o 3 Những điểm cần khắc phục

● Kĩ năng lập trình vẫn cần phải hoàn thiện hơn và “sạch” (clean) hơn

● Cần cải thiện kĩ năng testing, đặc biệt là Unit Test

● Đóng góp ý kiến trong các cuộc họp Daily Meeting nhiều hơn

Ngày đăng: 01/02/2023, 21:23

w