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

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

Đ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

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

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: Lớp: CE501.J11 Người hướng dẫn: KS Trần Đại Dương Thành phố Hồ Chí Minh – Năm 2018 LỜI CẢM ƠN Để hoàn thành chuyên đề báo cáo thực tập trước hết em xin gửi đến quý thầy,cô giáo 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 lời cảm ơn sâu sắc Em xin chân thành cảm ơn Ban Lãnh Đạo, phòng ban công ty TMA Solutions, tạo điều kiện thuận lợi cho em tìm hiểu thực tiễn suốt trình thực tập cơng ty Cuối em xin cảm ơn anh chị phòng Nghiên cứu, phát triển cơng ty TMA Solutions giúp đỡ em hồn thành tốt chuyên đề thực tập Đồng thời nhà trường tạo cho em có hội thưc tập nơi mà em yêu thích, cho em bước đời sống thực tế để áp dụng kiến thức mà thầy cô giáo giảng dạy Qua công việc thực tập em nhận nhiều điều mẻ bổ ích để giúp ích cho cơng việc sau thân Vì kiến thức thân hạn chế, q trình thực tập, em khơng tránh khỏi sai sót, kính mong nhận ý kiến đóng góp từ thầy q cơng ty MỤC LỤC GIỚI THIỆU VỀ CÔNG TY TMA SOLUTIONS 1.1 Q trình hình thành phát triển cơng ty 1.2 Chức hoạt động kinh doanh TMA 2 LỊCH LÀM VIỆC TẠI NƠI THỰC TẬP NỘI DUNG NHIỆM VỤ CHÍNH ĐƯỢC GIAO 3.1 Sơ lược Spring Boot: 3.1.1 Mô hình Spring MVC 3.1.2 Giới thiệu Spring Boot 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 Mockito 13 KẾT QUẢ ĐẠT ĐƯỢC QUA KỲ THỰC TẬP 13 4.1 Những kiến thức lý thuyết củng cố .13 4.2 Những kỹ thực hành học thêm kinh nghiệm thực tiễn tích lũy 13 NHẬN XÉT GĨP Ý VỀ CHƯƠNG TRÌNH ĐÀO TẠO CỦA KHOA 14 TÀI LIỆU THAM KHẢO 15 NỘI DUNG BÁO CÁO GIỚI THIỆU VỀ CÔNG TY TMA SOLUTIONS 1.1 Quá trình hình thành phát triển 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), thành lập năm 1997 phòng khách nhà Bà Bùi Ngọc Anh với Kỹ sư tốt nghiệp o Năm 1998 Khách hàng đến từ Mỹ Canada Đến năm 1999, tăng số lượng nhân lên 54 kỹ sư, dời đến trụ sở quận Phú Nhuận (cũng trụ sở Cơng ty) 2000, có thêm khách hàng từ Úc, Singapore, Ấn Độ Nhật Bản Năm 2003, thành lập trung tâm nghiên cứu phát triển R&D Số lượng nhân viên lúc đạt 200 người o Năm 2006-2008, TMA thành lập thêm chi nhánh Nhật bản, Mỹ 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 khách hàng từ Đức, Pháp, Đan Mạch Trong khoảng năm 2009-2010, TMA hồn thành thêm trụ sở thứ sáu công viên phần mềm Quang Trung Đồng thời cho đờ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 Trung tâm Thực tập Sinh viên (SDC) nhằm đào tạo nâng cao trình độ hệ sinh viên, đặc biệt sinh viên CNTT o Năm 2017, kỉ niệm 20 năm thành lập phát triển vững mạnh, số lượng kỹ sư CNTT làm việc TMA đạt 2000 người o Năm 2018, Khởi công xây dựng công viên sáng tạo TMA thành phố Quy Nhơn, tỉnh Bình Định Số lượng nhân viên TMA 2400 kỹ sư o Đội ngũ kỹ thuật TMA lựa chọn từ hồ bơi lớn nguồn lực CNTT Việt Nam khả chứng minh nhiều dự án thành công TMA cung cấp đầy đủ dịch vụ phần mềm, từ kiểm tra bảo dưỡng để phát triển chu kỳ đầy đủ giải pháp kết thúc 1.2 Chức hoạt động kinh doanh TMA  Phát triển phần mềm o Phát triển dịch vụ phần mềm 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ông ty hàng đầu giới lĩnh vực : network, tài chính, e-commerce, …  Kiểm thử phần mềm o Kiểm tra toàn 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) o Thiết kế apps đa tảng ( web, mobile, desktop)  Dịch vụ quản trị hệ thống IT: o TMA cung cấp dịch vụ : Cloud and server, IT security, Application packaging 2 LỊCH LÀM VIỆC TẠI NƠI THỰC TẬP Sáng Thứ 2, thứ 3, thứ 4, thứ 5, thứ 9h00 – 12h00 (từ 09/07/2018 đến 27/09/2018) Thứ 7, Chủ nhật - Chiều 13h30 – 17h30 Nghỉ hàng tuần Nhiệm vụ giao: Tìm hiểu Spring MVC phát triển Web API NỘI DUNG NHIỆM VỤ CHÍNH ĐƯỢC GIAO 3.1 Sơ lược Spring Boot: 3.1.1 Mô hình Spring MVC Bao gồm thành phần : o Controller : Giữ nhiệm vụ điều hướng yêu cầu từ người Database Database dùng, chứa logic doanh nghiệp, đảm nhậnBROWSER yêu cầu từ phía BROWSER client, lưu trữ liệu vào database, web service,… o Model : Chứa 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, nơi tập MODEL MODEL hợp form file HTML, CSS, templates … CONTROLLER CONTROLLER HTTP REQUEST VIEW VIEW HTTP RESPONSE Hình Mơ hình Spring MVC 3.1.2 Giới thiệu Spring Boot o Spring boot Project nằm tầng IO Execution Spring MVC Framework o Spring boot tạo làm dễ dàng cho việc lập trình phát triển ứng dụng Spring boot hỗ trợ chứa nhúng, cho phép ứng dụng web chạy độc lập mà khơng cần triển khai Web Server o Như Spring Boot bao gồm Spring Framework (Spring MVC) Embedded HTTP server ( Tomcat, serverlet, ) Lợi ích Spring Boot ta khơng cần phải cấu hình XML, giảm thiểu thời gian tăng xuất 3.2 Nội dung công việc Thời gian Công việc 9/7 – 13/7/2018 Review Java Core 16/7- 20/7/2018 Review Java OOP 23/7 – 27/7/2018 Design Robot Movement 30/7 – 10/8/2018 game in OOP Đọc tài liệu Spring Boot cài đặt Maven config 13/8 – 24/8/2018 dependency Cài đặt MySQL, Tìm hiểu Java Persistence API, 27/8 – 31/8/2018 Katharsis JSON API Đọc tài liệu làm quen với testing Junit Mockito 3/9 – 21/9/2018 Thiết kế web API 3.2.1 Các phần mềm sử dụng o o o o o o JRE 8, JDK Intellij idea : Java development Maven dependency MySQL Workbench Postman for API development Git version control 3.2.2 Thiết kế spring boot application đơn giản o Tạo maven project: mvn archetype:generate -DgroupId=com.tma -DartifactId=training-lab-api -DarchetypeArtifactId=mavenarchetype-quickstart -DinteractiveMode=false Thư mục chứa application: Hình Cấu trúc project Maven o POM file configuration trung tâm Maven project Là file đơn lẻ chứa thơng tin cần để build Hình Cấu POM file o Thêm Spring boottrúc vàocủa project: Thêm dependency vào POM.xml org.springframework.boot spring-boot-starterparent 2.0.2.RELEASE o Bổ sung @anotation vào Application class: import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; Tạo HelloController Class controller dùng để test app Hình HelloControler Class o Sau run app, truy cập vào localhost:8080/api/ ta được: Hình Kết sau connect tới localhost 3.2.3 Java Persistence API (JPA) o Maven: Maven chương trình quản lý dự án cho phép developers xây dựng quản lý dự án liên quan đến Java Cung cấp công cụ hỗ trợ dependencies (thư viện sử dụng dự án) o Sử dụng Spring JPA để lưu trữ truy xuất liệu relational database, JPA dependency: org.springframework.boot spring-boot-starter-data-jpa o Cấu hình MySQL: mysql mysql-connector-java o MySQL query: CREATE DATABASE IF NOT EXISTS `tlab_db`; USE `tlab_db`; DROP TABLE IF EXISTS `subject`; CREATE TABLE `subject` ( `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 Subject class model package, tiến hành mapping với database: Hình Kết nối java class với database o Thêm vào HelloController class để test SubjectJpaRepository @Autowired private SubjectJpaRepository jpaRepository; @RequestMapping("/") public String index() { System.out.println("START testing jpa"); List 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 thêm class SubjectRepository SubjectRepositoryImpl : Hình Tạo thêm repository 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 chức RESTful API Postman: GET request: http://localhost:9090/api/subjects Hình GET request o POST request: tạo subject thơng tin subject lưu vào database Hình POST request o PATCH request : chỉnh sửa thơng tin subject có id = Hình 10 PATCH request 3.2.5 Testing với Junit Mockito o Junit framework mã nguồn mở dùng để tạo scrip testing tự động cho Java o Thêm @Test annotation vào phương thức test, tạo object bên phương thức test để gọi method định nghĩa kết mong muốn, sau gọi phương thức cần test để so sanh kết thực tế so với kết mong muốn KẾT QUẢ ĐẠT ĐƯỢC QUA KỲ THỰC TẬP 4.1 Những kiến thức lý thuyết củng cố o Những kiến thức vận dụng: kỹ lập trình, hướng đối tượng, sở liệu o Củng cố kỹ lập trình, quy trình thiết kế phần mềm 4.2 Những kỹ thực hành học thêm kinh nghiệm thực tiễn tích lũy o Tìm hiểu mơ hình MVC Spring Framework , cách vận hành phần back-end website o Củng cố kiến thức Java Web o Có kỹ lập kết hoạch tổ chức công việc hiệu o Khả học hỏi tìm tòi, nghiên cứu vấn đề o Khả làm việc nhóm o Trau dồi kỹ giao tiếp, kỹ Tiếng Anh o Có thói quen làm việc tốt 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 khoa hợp lý so với chương trình đào tạo cũ o Tổ chức khóa lập trình nhúng ngắn hạn, dài hạn, khóa training kỹ lập trình o Bổ sung thêm mơn lập trình IOT, có ứng dụng web mobile o Các môn học liên quan đến hệ điều hành Linux, RTOS, Unix,… o Tổ chức thường xuyên hoạt động với doanh nghiệp, để sinh viên nắm bắt công nghệ mới, xu hướng nghề nghiệp 6 TÀI LIỆU THAM KHẢO [1] https://docs.spring.io/spring/docs/current/spring-frameworkreference/web.html [2] https://docs.spring.io/springboot/docs/2.1.0.RELEASE/reference/htmlsingle/ [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 ... hình Spring MVC 3.1.2 Giới thiệu Spring Boot o Spring boot Project nằm tầng IO Execution Spring MVC Framework o Spring boot tạo làm dễ dàng cho việc lập trình phát triển ứng dụng Spring boot. .. CHƯƠNG TRÌNH ĐÀO TẠO CỦA KHOA o Chương trình đào tạo khoa hợp lý so với chương trình đào tạo cũ o Tổ chức khóa lập trình nhúng ngắn hạn, dài hạn, khóa training kỹ lập trình o Bổ sung thêm mơn lập trình. .. phép ứng dụng web chạy độc lập mà khơng cần triển khai Web Server o Như Spring Boot bao gồm Spring Framework (Spring MVC) Embedded HTTP server ( Tomcat, serverlet, ) Lợi ích Spring Boot ta khơng

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

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

Tài liệu liên quan