1. Trang chủ
  2. » Luận Văn - Báo Cáo

LẬP TRÌNH WEB API VỚI SPRING BOOT

18 437 8
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

Định dạng
Số trang 18
Dung lượng 364,32 KB

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

Nội dung

LẬP TRÌNH WEB API VỚI SPRING BOOT

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUẬT MÁY TÍNH

-LẬP TRÌNH WEB API VỚI SPRING BOOT

BÁO CÁO THỰC TẬP DOANH NGHIỆP

SV thực hiện:

MSSV:

Người hướng dẫn: KS Trần Đại Dương

Thành phố Hồ Chí Minh – Năm 2018

Trang 2

LỜI CẢM ƠN

Để hoàn thành chuyên đề báo cáo thực tập này trước hết em xin gửi đến quý thầy,cô giáo trong khoa Kỹ thuật Máy tính trường Đại học Công nghệ Thông tin lời cảm ơn chân thành

Đặc biệt, em xin gởi đến thầy Trần Đại Dương, người đã tận tình hướng dẫn, giúp đỡ em hoàn thành chuyên đề báo cáo thực tập này lời cảm ơn sâu sắc nhất

Em xin chân thành cảm ơn Ban Lãnh Đạo, các phòng ban của công ty TMA Solutions, đã tạo điều kiện thuận lợi cho em được tìm hiểu thực tiễn trong suốt quá trình thực tập tại công ty

Cuối cùng em xin cảm ơn các anh chị phòng Nghiên cứu, phát triển của công ty TMA Solutions đã giúp đỡ em hoàn thành tốt chuyên đề thực tập này

Đồng thời nhà trường đã tạo cho em có cơ hội được thưc tập nơi mà em yêu thích, cho em bước ra đời sống thực tế để áp dụng những kiến thức mà các thầy cô giáo đã giảng dạy Qua công việc thực tập này em nhận ra nhiều điều mới mẻ và

bổ ích để giúp ích cho công việc sau này của bản thân

Vì kiến thức bản thân còn hạn chế, trong quá trình thực tập, em không tránh khỏi những sai sót, kính mong nhận được những ý kiến đóng góp từ thầy cũng như quý công ty

Trang 3

MỤC LỤC

1 GIỚI THIỆU VỀ CÔNG TY TMA SOLUTIONS 2

1.1 Quá trình hình thành và phát triển của công ty 2

1.2 Chức năng hoạt động và kinh doanh của TMA 2

2 LỊCH LÀM VIỆC TẠI NƠI THỰC TẬP 2

3 NỘI DUNG NHIỆM VỤ CHÍNH ĐƯỢC GIAO 2

3.1 Sơ lược về Spring Boot: 2

3.1.1 Mô hình Spring MVC 2

3.1.2 Giới thiệu về Spring Boot 3

3.2 Nội dung công việc 4

3.2.1 Các phần mềm sử dụng 4

3.2.2 Thiết kế spring boot application đơn giản 5

3.2.3 Java Persistence API (JPA) 7

3.2.4 Katharsis JSON API 10

3.2.5 Testing với Junit và Mockito 13

4 KẾT QUẢ ĐẠT ĐƯỢC QUA KỲ THỰC TẬP 13

4.1 Những kiến thức lý thuyết đã được củng cố 13

4.2 Những kỹ năng thực hành đã được học thêm và những kinh nghiệm thực tiễn đã tích lũy được 13

5 NHẬN XÉT GÓP Ý VỀ CHƯƠNG TRÌNH ĐÀO TẠO CỦA KHOA 14

6 TÀI LIỆU THAM KHẢO 15

Trang 4

NỘI DUNG BÁO CÁO

1 GIỚI THIỆU VỀ CÔNG TY TMA SOLUTIONS

1.1 Quá trình hình thành và phát triển của công ty

o TMA Solutions (tên tiếng Việt: Công ty TNHH Giải Pháp Phần Mềm Tường Minh), được thành lập năm 1997 trong phòng khách nhà Bà Bùi Ngọc Anh với 6 Kỹ sư mới tốt nghiệp

o Năm 1998 Khách hàng đầu tiên đến từ Mỹ và Canada Đến năm 1999, tăng số lượng nhân sự lên 54 kỹ sư, dời đến trụ sở mới tại quận Phú Nhuận (cũng là trụ sở chính của Công ty) 2000, có thêm khách hàng từ Úc, Singapore,

Ấn Độ và Nhật Bản Năm 2003, thành lập trung tâm nghiên cứu và phát triển R&D Số lượng nhân viên lúc này cũng đạt được 200 người

o Năm 2006-2008, TMA thành lập thêm 3 chi nhánh mới ở Nhật bản, Mỹ và ở châu Âu Vào lúc này, TMA bước đầu thâm nhập thị trường châu Âu với các khách hàng từ Đức, Pháp, Đan Mạch Trong khoảng năm 2009-2010, TMA hoàn thành thêm trụ sở thứ sáu của mình tại công viên phần mềm Quang Trung Đồng thời cho ra đời Trung tâm Giải pháp Di Động TMA (TMA Mobile Solutions)

o Năm 2011, TMA thành lập Tech Lab và Trung tâm Thực tập Sinh viên (SDC) nhằm đào tạo và nâng cao trình độ các thế hệ sinh viên, đặc biệt là sinh viên CNTT

Trang 5

o Năm 2017, kỉ niệm 20 năm thành lập và phát triển vững mạnh, số lượng kỹ sư CNTT đang làm việc tại TMA đạt hơn 2000 người

o Năm 2018, Khởi công xây dựng công viên sáng tạo TMA tại thành phố Quy Nhơn, tỉnh Bình Định Số lượng nhân viên tại TMA là 2400 kỹ sư

o Đội ngũ kỹ thuật của TMA đã được lựa chọn từ một hồ bơi lớn của nguồn lực CNTT Việt Nam và khả năng của

nó đã được chứng minh trong nhiều dự án thành công TMA cung cấp đầy đủ các dịch vụ phần mềm, từ kiểm tra

và bảo dưỡng để phát triển chu kỳ đầy đủ và giải pháp kết thúc

1.2 Chức năng hoạt động và kinh doanh của TMA

Phát triển phần mềm

o Phát triển dịch vụ phần mềm các ngôn ngữ chủ yếu : NET, Java, C/C++, php, Python, Ruby, iOS, Android, …

o Gia công phần mềm cho các công ty hàng đầu trên thế giới về các lĩnh vực như : network, tài chính, e-commerce, …

Kiểm thử phần mềm

o Kiểm tra toàn bộ hệ thống

o Kiểm soát chất lượng

o Giải pháp kiểm thử phần mềm

o Tự động hóa testing

Thiết kế giao diện(visual design)

Trang 6

o Thiết kế apps đa nền tảng ( web, mobile, desktop)

Dịch vụ quản trị hệ thống IT:

o TMA cung cấp dịch vụ như : Cloud and server,

IT security, Application packaging

2 LỊCH LÀM VIỆC TẠI NƠI THỰC TẬP

Thứ 2, thứ 3, thứ 4, thứ 5, thứ 6

13h30 – 17h30

- Nhiệm vụ chính được giao: Tìm hiểu về Spring MVC và phát triển Web API

3 NỘI DUNG NHIỆM VỤ CHÍNH ĐƯỢC GIAO

3.1 Sơ lược về Spring Boot:

3.1.1 Mô hình Spring MVC

Bao gồm 3 thành phần chính :

Trang 7

o Controller : Giữ nhiệm vụ điều hướng các yêu cầu từ người

dùng, chứa logic doanh nghiệp, đảm nhận yêu cầu từ phía

client, lưu trữ dữ liệu vào database, web service,…

o Model : Chứa cái nghiệp vụ logic, phương thức xử lý, truy

xuất Database, hàm xử lý, Class,…

o View : hiển thị thông tin tương tác với người dùng, là nơi tập

hợp các form hoặc file HTML, CSS, templates …

3.1.2 Giới thiệu về Spring Boot

o Spring boot là Project nằm trên tầng IO Execution của

Spring MVC Framework

o Spring boot được tạo ra làm dễ dàng hơn cho việc lập

trình và phát triển ứng dụng Spring boot hỗ trợ các bộ chứa nhúng, cho phép các ứng dụng web có thể chạy độc lập mà không cần triển khai ở các Web Server

HTTP RESPONSE

MODEL

HTTP REQUEST

1

2

3

4

5

Hình 1 Mô hình Spring MVC

Trang 8

o Như vậy Spring Boot bao gồm Spring Framework (Spring MVC) và Embedded HTTP server ( Tomcat, serverlet, ) Lợi ích của Spring Boot là ta không cần phải cấu hình XML, giảm thiểu thời gian và tăng năng xuất

3.2 Nội dung công việc

3.2.1 Các phần mềm sử dụng

o JRE 8, JDK 8

o Intellij idea : Java development

o Maven dependency

game in OOP

cài đặt Maven và config các dependency

Java Persistence API, Katharsis JSON API

testing trên Junit và Mockito

Trang 9

o MySQL Workbench.

o Postman for API development

o Git version control

3.2.2 Thiết kế spring boot application đơn giản

o Tạo một maven project:

mvn archetype:generate DgroupId=com.tma

DartifactId=traininglabapi

DarchetypeArtifactId=mavenarchetypequickstart -DinteractiveMode=false

Thư mục chứa application:

Hình 2 Cấu trúc của project Maven

o POM file configuration là trung tâm của Maven project Là một file đơn lẻ chứa các thông tin cần để build

Hình 3 Cấu trúc của POM file

Trang 10

o Thêm Spring boot vào project:

Thêm dependency vào POM.xml

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId> <version>2.0.2.RELEASE</version>

</parent>

o Bổ sung các @anotation vào Application class:

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

Tạo một HelloController Class là controller dùng để test app

o Sau khi run app, truy cập vào localhost:8080/api/ ta được:

Hình 4 HelloControler Class

Trang 11

3.2.3 Java Persistence API (JPA)

o Maven:

Maven là một chương trình quản lý dự án cho phép developers xây dựng và quản lý bất kỳ dự án liên quan đến Java Cung cấp các công

cụ hỗ trợ dependencies (thư viện sử dụng trong dự án)

o Sử dụng Spring JPA để lưu trữ và truy xuất dữ liệu trong relational database, JPA dependency:

< dependency >

< groupId >org.springframework.boot</groupId>

< artifactId >spring-boot-starter-data-jpa</artifactId>

</dependency>

o Cấu hình MySQL:

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

</dependency>

o MySQL query:

CREATE DATABASE IF NOT EXISTS `tlab_db`;

USE `tlab_db`;

DROP TABLE IF EXISTS `subject`;

CREATE TABLE `subject` (

Hình 5 Kết quả sau khi connect tới localhost.

Trang 12

`subject_id` bigint(20) NOT NULL

AUTO_INCREMENT,

`description` varchar(45) NOT NULL,

PRIMARY KEY (`subject_id`)

) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

LOCK TABLES `subject` WRITE;

INSERT INTO `subject` VALUES (1,'Spring'), (2,'DOTNET');

UNLOCK TABLES;

Tạo một Subject class trong model package, tiến hành mapping với database:

o Thêm vào HelloController class để test SubjectJpaRepository

@Autowired

private SubjectJpaRepository jpaRepository;

Hình 6 Kết nối java class với database

Trang 13

public String index() {

System.out.println("START testing jpa");

List<Subject> subjectList = jpaRepository.findAll(); for (Subject subject : subjectList) {

System.out.println("ID = " + subject.getSubjectId()); System.out.println("Description = " +

subject.getDescription());

}

System.out.println("END testing jpa");

return "Greetings from Spring Boot!";

}

o Truy cập vào server ta được:

3.2.4 Katharsis JSON API

o Tạo repository và thêm các class SubjectRepository và SubjectRepositoryImpl :

Hình 7 Tạo thêm các repository

Trang 14

o Thêm KatharsisConfigV3 ở Application class

@SpringBootApplication

@Import ({ KatharsisConfigV3.class })

public class Application {

public static void main(String[] args) {

SpringApplication.run(Application.class, args); }

}

o Test các chức năng của RESTful API trên Postman: GET request: http://localhost:9090/api/subjects

Hình 8 GET request

Trang 15

o POST request: tạo mới một subject và thông tin của subject

đó sẽ được lưu vào trong database

o PATCH request : chỉnh sửa thông tin của subject có id = 3

Hình 9 POST request

Hình 10 PATCH request

Trang 16

3.2.5 Testing với Junit và Mockito

o Junit là một framework mã nguồn mở dùng để tạo ra các scrip testing tự động cho Java

o Thêm @Test annotation vào phương thức test, tiếp theo tạo một object bên dưới phương thức test để gọi method và định nghĩa các kết quả mong muốn, sau đó gọi phương thức cần test để so sanh kết quả thực tế so với kết quả mong muốn

4 KẾT QUẢ ĐẠT ĐƯỢC QUA KỲ THỰC TẬP

4.1 Những kiến thức lý thuyết đã được củng cố

o Những kiến thức vận dụng: kỹ năng lập trình, hướng đối tượng, cơ sở dữ liệu

o Củng cố kỹ năng lập trình, quy trình thiết kế phần mềm

4.2 Những kỹ năng thực hành đã được học thêm và những

kinh nghiệm thực tiễn đã tích lũy được

o Tìm hiểu về mô hình MVC và Spring Framework , cách vận hành của phần back-end trong một website

o Củng cố kiến thức về Java Web

o Có được các kỹ năng lập kết hoạch và tổ chức công việc hiệu quả

Trang 17

o Khả năng học hỏi tìm tòi, nghiên cứu vấn đề mới.

o Khả năng làm việc nhóm

o Trau dồi kỹ năng giao tiếp, kỹ năng Tiếng Anh

o Có một thói quen làm việc tốt

5 NHẬN XÉT GÓP Ý VỀ CHƯƠNG TRÌNH ĐÀO TẠO CỦA KHOA

o Chương trình đào tạo mới của khoa hợp lý hơn so với chương trình đào tạo cũ

o Tổ chức các khóa lập trình nhúng ngắn hạn, dài hạn, các khóa training về kỹ năng lập trình

o Bổ sung thêm các môn về lập trình IOT, trong đó có ứng dụng web và mobile

o Các môn học liên quan đến hệ điều hành như Linux, RTOS, Unix,…

o Tổ chức thường xuyên các hoạt động với doanh nghiệp, để sinh viên có thể nắm bắt được các công nghệ mới, xu hướng nghề nghiệp

Trang 18

6 TÀI LIỆU THAM KHẢO

[1] https://docs.spring.io/spring/docs/current/spring-framework-reference/ web.html

[2]

https://docs.spring.io/spring-boot/docs/2.1.0.RELEASE/reference/htmlsingl e/

[3] https://docs.oracle.com/javaee/6/tutorial/doc/bnbpz.html

[4] http://jsonapi.org/

[5] https://katharsis-jsonapi.readthedocs.io/en/latest/

[6] Spring Boot in action by Craig Walls

Ngày đăng: 16/01/2019, 10:42

TỪ KHÓA LIÊN QUAN

w