Đăng ký Đăng nhập
Trang chủ Lập trình web api với spring boot...

Tài liệu Lập trình web api với spring boot

.DOCX
18
160
68

Mô tả:

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 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 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. 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 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 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 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. 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) 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 Sáng Thứ 2, thứ 3, thứ 4, thứ 5, thứ 6 (từ 09/07/2018 đến 27/09/2018) Thứ 7, Chủ nhật. - 9h00 – 12h00 17h30 Nghỉ hàng tuần Nhiệm vụ chính được giao: Tìm hiểu về Spring MVC và phát triển Web API. 3. Chiều 13h30 – 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 : 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 …. Database Database BROWSER BROWSER 4 MODEL MODEL 1 2 HTTP REQUEST 5 CONTROLLER CONTROLLER 3 HTTP RESPONSE VIEW VIEW Hình 1 Mô hình Spring MVC 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. 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 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 về Spring Boot và cài đặt Maven và config các 13/8 – 24/8/2018 dependency. Cài đặt MySQL, Tìm hiểu về Java Persistence API, 27/8 – 31/8/2018 Katharsis JSON API. Đọc tài liệu làm quen với testing trên Junit và Mockito. 3/9 – 21/9/2018 Thiết kế web API . 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. 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=training-lab-api -DarchetypeArtifactId=mavenarchetype-quickstart -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 o Thêm Spring boot vào project: Thêm dependency vào POM.xml org.springframework.boot spring-boot-starterparent 2.0.2.RELEASE 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. Hình 4 HelloControler Class o Sau khi run app, truy cập vào localhost:8080/api/ ta được: Hình 5 Kết quả sau khi connect tới localhost. 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: 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 một Subject class trong model package, tiến hành mapping với database: Hình 6 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 và thêm các class SubjectRepository và SubjectRepositoryImpl : Hình 7 Tạo thêm các 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 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 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. Hình 9 POST request o PATCH request : chỉnh sửa thông tin của subject có id = 3. Hình 10 PATCH request 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ả 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. 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.
- Xem thêm -

Tài liệu liên quan