MC4027 Advanced Java Programming Syllabus:

MC4027 Advanced Java Programming Syllabus – Anna University PG Syllabus Regulation 2021

COURSE OBJECTIVES:

 To understand the fundamentals of web programming and client side scripting.
 To learn server side development using servlets, web sockets.
 To learn the Spring framework and build applications using Spring.
 To learn and implement the concept of Java Persistence API.
 To learn the advanced client side scripting and framework.

UNIT I INTRODUCTION TO WEB & JAVASCRIPT

Introduction to Web: Server – Client – Communication Protocol (HTTP), Javascript Prototypes – Classes – Modules – Fetch API – JS Canvas – Storage: Local Storage, Cookies, Indexed DB, JSON
Lab Components
1. Create an event registration application using javascript. It should implement different widgets for registration form and registered records view using tabs. It should perform the form validation. (Unit I)
2. Create a javascript application in an Object Oriented way using Classes and Modules. It should also use browser storage for persistence. (Unit I)

UNIT II SERVER SIDE PROGRAMMING

Web Server: Web Containers – Web Components, Servlet: Lifecycle – Request – Servlet Context – Response – Filter – Session – Dispatching Requests, WebSocket, Logging – Log4j2, Build tool – Gradle. Introduction to Spring: IoC Container and Dependency Injection (DI)
Lab Components
1 Build a web application using Gradle. The server side of the application should implement RESTful APIs using Servlet and do necessary logging. The client side of the application should be a single page application which consumes the RESTful APIs through AJAX. (Unit II)
2.. Build a chat application using WebSocket. (Unit II)

UNIT III SPRING

Spring Configuration and Spring Boot, Spring MVC, Spring Bean Lifecycle – Dispatcher Servlet and Configuration – Interceptors – Annotations, Controllers – Views – Input Validation -File Upload Container, Dependency and IOC .
Lab Components
1. Create a Spring MVC application. The application should handle form validation, file upload, session tracking.
2. Implement a RESTful Spring Boot application using Spring REST, Spring Security and Spring Cache.

UNITI IV AOP,JAVA PERSISTENCE API AND HIBERNATE

Aspect Oriented Programming(AOP) – Entity: Basic, Embeddable and Collection Types – Identifiers – Entity Relationship – Inheritance, Persistence Context and Entity Manager, JPQL, Criteria API, Spring Data JPA – Specification and Projection.
Lab Components
1. Design a system using JPA and Hibernate. The system should have multiple entities and relationships between the entities. The database schema should be generated through Hibernate. Provide RESTful endpoints for CRUD operations for the defined entities. Also, support pagination and searching using JPA’s JPQL and Criteria API. (Unit IV)
2. Create a Spring RESTful Application with Spring Data JPA. Support pagination and searching using Specifications. (Unit IV)

UNIT V ADVANCED SPRING PROGRAMMING

Spring Boot JDBC – Spring Boot Actuator – Spring Cloud -Spring Boot Testing – Spring Security Architecture , Spring Cache – Building RESTful Web Services
Lab Components
1. Create a React application with different components and interactions between the components.
2. Develop a full-stack application using React and Spring. Make use of Spring REST, Spring Security, Spring Data JPA, Hibernate, Spring Boot, Gradle and ReactJS state and component mechanism.

COURSE OUTCOMES:

Upon completion of the course the students should be able to:
CO1:To write client side scripting.
CO2:To implement the server side of the web application.
CO3:To implement Web Application using Spring.
CO4:To implement a Java application using Java Persistence API.
CO5:To implement a full-stack Single Page Application using React, Spring and JPA.

TOTAL:75 PERIODS

REFERENCES

1. David Flanagan, “Java Script: The Definitive Guide”, O’Reilly Media, Inc, 7th Edition, 2020
2. Matt Frisbie, “Professional JavaScript for Web Developers”, Wiley Publishing, Inc, 4th Edition, ISBN: 978-1-119-36656-0, 2019
3. Alex Banks, Eve Porcello, “Learning React”, O’Reilly Media, Inc, 2nd Edition, 2020
4. David R. Heffelfinger, “Java EE 8 Application Development”, Packt Publishing, First edition2017
5. Benjamin Muschko, “Gradle in Action”, Manning Publications, First edition2014
6. Iuliana Cosmina, Rob Harrop, Chris Schaefer, Clarence Ho, “Pro Spring 5: An In-Depth Guide to the Spring Framework and Its Tools”, Apress, Fifth edition2017