[major=SE | course_id=HSF302 | syllabus_id=13804 | semester=5 | combo=SE_COM10.2 | title=Working with Spring Framework]
Course ID: HSF302
Title EN: Working with Spring Framework
Title VI: Làm việc với Spring Framework
Credits: 3.0
Prerequisites: PRJ301
Description: Upon completion of this course students shoud:
1. Understand the followings:
• Basic concepts of Java FX to build Desktop Application
• Basics of Object-Relational Mapping (ORM) with JPA and how it simplifies database interactions.
• Spring Framework, Spring Boot, which provides a comprehensive ecosystem for building enterprise-level applications.
• Spring Framework's dependency injection, and web frameworks to build robust and scalable applications

2. Be able to:
• Use JPA ORM tool to map Java objects to database tables.
• Use Spring Framework's dependency injection, and web frameworks to build robust and scalable applications.
• Develop Cross-platform Desktop applications and support for user experience (UI & UX)

3. Be able to work in team and present group's results
Student tasks: - Students must attend at least 80% of contact sessions in order to be accepted to the final examination.
- Student is responsible to do all assigned exercises given by instructor in class or at home and submit on time
- Use laptop in class only for learning purpose
- Promptly access to the FU CMS at http://flm.fpt.edu.vn for up-to-date course information
Tools: - Internet
- IntelliJ IDEA
- Platform : Java Development Kit 21
- Scene Builder 23
Course type: coursera_hybrid
Decision: 1402/QĐ-ĐHFPT dated 12/12/2025
Approved date: 2025-12-12
CLO1: Describe the basics of Object-Relational Mapping (ORM) and how it simplifies database interactions.
[1] category=Assignment; type=on-going; weight=10.0; duration=12 slots; question_type=CLO2, CLO3, CLO4; grading_guide=Subjects in syllabus; completion_criteria=; clos=>0
[2] category=Group Project; type=on-going; weight=25.0; duration=20 slots; question_type=CLO2, CLO3, CLO4, CLO5; grading_guide=Subjects in syllabus; completion_criteria=; clos=>0
[3] category=Progress test; type=on-going; weight=10.0; duration=30'; question_type=CLO1, CLO2, CLO3, CLO4; grading_guide=; completion_criteria=; clos=>0
[4] category=Final exam; type=Final exam; weight=55.0; duration=145 minutes; question_type=CLO1, CLO2, CLO3, CLO4, CLO5; grading_guide=All subjects in syllabus; completion_criteria=; clos=4
[5] category=Practical Exam; type=Final exam; weight=25.0; duration=85'; question_type=CLO2, CLO3, CLO4; grading_guide=Subjects in syllabus; completion_criteria=; clos=4
[6] category=Theory Exam; type=Final exam; weight=30.0; duration=60'; question_type=CLO1, CLO2, CLO3, CLO4, CLO5; grading_guide=All subjects in syllabus; completion_criteria=; clos=4
[1] desc=JPA; author=; publisher=; edition=; isbn=; main=True; online=True; note=https://docs.spring.io/spring-data/jpa/reference/jpa.html
[2] desc=Spring Framework Essentials; author=; publisher=Spring Academy; edition=; isbn=; main=; online=True; note=https://spring.academy/courses/spring-framework-essentials
[3] desc=Spring Framework - Core Technologies; author=; publisher=Spring Academy; edition=; isbn=; main=True; online=True; note=https://docs.spring.io/spring-framework/reference/core.html
[4] desc=Spring Framework Specialization; author=; publisher=Coursera; edition=; isbn=; main=; online=True; note=https://www.coursera.org/specializations/spring-framework
[5] desc=Java FX; author=; publisher=Java FX; edition=; isbn=; main=True; online=True; note=https://openjfx.io/openjfx-docs/
[6] desc=Spring 6 & Spring Boot 3 for Beginners; author=; publisher=Udemy; edition=; isbn=; main=; online=True; note=https://www.udemy.com/course/learn-spring-boot/
[7] desc=Beginning Spring Data: Data Access and Persistence for Spring Framework 6
and Boot 3; author=Andres Sacco; publisher=Apress; edition=1st; isbn=1484287630; main=; online=; note=
Session 1: Course Introduction
Topic: Offline; Teaching type: CLO1; LO: IT
ITU: Slide
Materials: HSF302
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Working Environment
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: https://www.oracle.com/java/technologies/downloads/
https://www.eclipse.org/downloads/packages/
https://www.jetbrains.com/idea/download/
https://spring.io/tools
https://gluonhq.com/products/scene-builder/
https://spring.io/tools
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Project Introduction
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: Project List
Download: - Choose Group
- Choose Topic
- Collect requirements about topic

Session 4: Chapter 01: JPA, JPA Mapping
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: https://docs.spring.io/spring-data/jpa/reference/jpa.html
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
CLO2: Describe the concepts of Spring Framework and Spring Boot
Session 1: Chapter 01: JPA, JPA Mapping (contd.)
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: https://docs.spring.io/spring-data/jpa/reference/jpa.html
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 01: JPA, JPA Mapping (contd.)
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: https://docs.spring.io/spring-data/jpa/reference/jpa.html
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 01: JPA, JPA Mapping (contd.)
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: https://docs.spring.io/spring-data/jpa/reference/jpa.html
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 01: JPA, JPA Mapping (contd.)
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: https://docs.spring.io/spring-data/jpa/reference/jpa.html
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
CLO3: Describe how Spring Data working with various data sources
Session 1: Chapter 01: JPA, JPA Mapping (contd.)
Topic: Offline; Teaching type: CLO1; LO: TU
ITU: https://docs.spring.io/spring-data/jpa/reference/jpa.html
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 02: Introduction to Spring Framework
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 3: Chapter 02: Introduction to Spring Framework (contd.)
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 4: Chapter 05: Introduction to Spring Framework (contd.)
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice
CLO4: Undersatnd Spring MVC provides a comprehensive programming and configuration model for modern Java-based enterprise applications.
Session 1: Chapter 03: Spring Boot Concepts
Topic: Offline; Teaching type: CLO2; LO: ITU
ITU: https://docs.spring.io/spring-boot/docs/current/reference/html/

Beginning Spring Data: Data Access and Persistence for Spring Framework 6
and Boot 3: Chapter 02
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 03: Spring Boot Concepts (contd.)
Topic: Offline; Teaching type: CLO2; LO: ITU
ITU: https://docs.spring.io/spring-boot/docs/current/reference/html/

Beginning Spring Data: Data Access and Persistence for Spring Framework 6
and Boot 3 : Chapter 02
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 03: Spring Boot Concepts (contd.)
Topic: Offline; Teaching type: CLO2; LO: ITU
ITU: https://docs.spring.io/spring-boot/docs/current/reference/html/

Beginning Spring Data: Data Access and Persistence for Spring Framework 6
and Boot 3 : Chapter 02
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 03: Spring Boot Concepts (contd.)
Topic: Offline; Teaching type: CLO2; LO: ITU
ITU: https://docs.spring.io/spring-boot/docs/current/reference/html/

Beginning Spring Data: Data Access and Persistence for Spring Framework 6
and Boot 3 : Chapter 03
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
CLO5: Create Cross-Platform applications using JavaFX. JavaFX is platform-independent, which means that JavaFX applications (CRUD) can run on different operating systems such as Windows, macOS, and Linux
Session 1: Chapter 03: Spring Boot Concepts (contd.)
Topic: Offline; Teaching type: CLO2; LO: ITU
ITU: https://docs.spring.io/spring-boot/docs/current/reference/html/

Beginning Spring Data: Data Access and Persistence for Spring Framework 6
and Boot 3 : Chapter 04
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 03: Spring Boot Concepts (contd.)
Topic: Offline; Teaching type: CLO2; LO: ITU
ITU: https://docs.spring.io/spring-boot/docs/current/reference/html/

Beginning Spring Data: Data Access and Persistence for Spring Framework 6
and Boot 3 : Chapter 05
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 04. Spring Data JPA
Topic: Offline; Teaching type: CLO3; LO: IT
ITU: https://docs.spring.io/spring-data/jpa/reference/
Beginning Spring Data: Data Access and Persistence for Spring Framework 6
and Boot 3 : Chapter 04
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 04. Spring Data JPA (contd.)
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://docs.spring.io/spring-data/jpa/reference/
Beginning Spring Data: Data Access and Persistence for Spring Framework 6
and Boot 3 : Chapter 04
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
CLO6: Develop teamwork skills, communication skills (including presentation skills)
Session 1: Chapter 04. Spring Data JPA (contd.)
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://docs.spring.io/spring-data/jpa/reference/
Beginning Spring Data: Data Access and Persistence for Spring Framework 6
and Boot 3 : Chapter 04
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 04. Spring Data JPA (contd.)
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://docs.spring.io/spring-data/jpa/reference/
Beginning Spring Data: Data Access and Persistence for Spring Framework 6
and Boot 3 : Chapter 04
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 04. Spring Data JPA (contd.)
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://docs.spring.io/spring-data/jpa/reference/
Beginning Spring Data: Data Access and Persistence for Spring Framework 6
and Boot 3 : Chapter 04
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 04. Spring Data JPA (contd.)
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://docs.spring.io/spring-data/jpa/reference/
Beginning Spring Data: Data Access and Persistence for Spring Framework 6
and Boot 3 : Chapter 04
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
Session 1: Guiding Assignment 01
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: Assignment 01
Download: - Read the requirements of Assignment 01
- Self practice

Session 2: Progress Test 01
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: Quiz LMS
Download: - Take Quiz 01

Session 3: Project Assistant - 01
Topic: Offline; Teaching type: CLO2; LO: TU
ITU: Group Project List
Download: - Discuss project problems

Session 4: Chapter 05: Spring MVC
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice
Session 1: Chapter 05: Spring MVC (contd.)
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 2: Chapter 05: Spring MVC (contd.)
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 3: Guiding Assignment 02
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: Assignment 02
Download: - Read the requirements of Assignment 02
- Self practice

Session 4: Progress Test 02
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: Quiz LMS
Download: - Take Quiz 02
Session 1: Project Assistant - 02
Topic: Offline; Teaching type: CLO3; LO: TU
ITU: Group Project List
Download: - Discuss project problems

Session 2: Chapter 05: Spring MVC (contd.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 3: Chapter 05: Spring MVC (contd.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 4: Chapter 05: Spring MVC (contd.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice
Session 1: Chapter 06: Spring Web Development with Thymeleaf
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 2: Chapter 06: Spring Web Development with Thymeleaf (contd.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 3: Chapter 06: Spring Web Development with Thymeleaf (contd.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 4: Chapter 06: Spring Web Development with Thymeleaf (contd.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice
Session 1: Chapter 06: Spring Web Development with Thymeleaf (contd.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 2: Chapter 06: Spring Web Development with Thymeleaf (contd.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 3: Chapter 07: Build a simple application with Data Access using Spring & Spring JDBC, Spring ORM
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 4: Chapter 07: Build a simple application with Data Access using Spring & Spring JDBC, Spring ORM (contd.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice
Session 1: Chapter 07: Build a simple application with Data Access using Spring & Spring JDBC, Spring ORM (contd.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 2: Chapter 07: Build a simple application with Data Access using Spring & Spring JDBC, Spring ORM (contd.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 3: Chapter 07: Build a simple application with Data Access using Spring & Spring JDBC, Spring ORM (contd.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 4: Chapter 07: Build a simple application with Data Access using Spring & Spring JDBC, Spring ORM (contd.)
Topic: Offline; Teaching type: CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice
Session 1: Chapter 08: Introduction to JavaFX
Topic: Offline; Teaching type: CLO5; LO: TU
ITU: https://openjfx.io/openjfx-docs/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 08: Introduction to JavaFX (contd.)
Topic: Offline; Teaching type: CLO5; LO: TU
ITU: https://openjfx.io/openjfx-docs/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 08: Introduction to JavaFX (contd.)
Topic: Offline; Teaching type: CLO5; LO: TU
ITU: https://openjfx.io/openjfx-docs/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 08: Introduction to JavaFX (contd.)
Topic: Offline; Teaching type: CLO5; LO: TU
ITU: https://openjfx.io/openjfx-docs/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
Session 1: Chapter 08: Introduction to JavaFX (contd.)
Topic: Offline; Teaching type: CLO5; LO: TU
ITU: https://openjfx.io/openjfx-docs/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Chapter 08: Introduction to JavaFX (contd.)
Topic: Offline; Teaching type: CLO5; LO: TU
ITU: https://openjfx.io/openjfx-docs/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 3: Chapter 09: Build application with JavaFX
Topic: Offline; Teaching type: CLO5; LO: TU
ITU: https://openjfx.io/openjfx-docs/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 4: Chapter 09: Build application with JavaFX (contd.)
Topic: Offline; Teaching type: CLO5; LO: TU
ITU: https://openjfx.io/openjfx-docs/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice
Session 1: Chapter 09: Build application with JavaFX (contd.)
Topic: Offline; Teaching type: CLO5; LO: TU
ITU: https://openjfx.io/openjfx-docs/
Download: - Read the slide, related reference documents
- Do exercises
- Self practice

Session 2: Project Evaluation
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 3: Project Evaluation
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice

Session 4: Project Evaluation
Topic: Offline; Teaching type: CLO1, CLO2, CLO3, CLO4; LO: TU
ITU: https://docs.spring.io/spring-framework/reference/core.html
Download: - Read the slide, related reference document
- Do exercises
- Self practice