Duration
Java Web Development and CI/CD Best Practices
5 days
Overview
In today’s fast-paced software development landscape, building robust web applications and automating workflows are critical skills for developers and engineers. Java, with its rich ecosystem and reliability, remains a cornerstone technology for creating scalable and secure web applications. Coupled with the power of modern frameworks like Spring Boot and best practices in Continuous Integration and Continuous Deployment (CI/CD), developers can deliver high-quality software faster and more efficiently.
This 5-day training program is designed to provide participants with a comprehensive understanding of Java web development and CI/CD practices. The program begins with the foundational concepts of Java and progressively dives into advanced topics such as database integration, dynamic templating, automated testing, containerization, and deployment. Each day builds upon the previous, ensuring a seamless learning experience that bridges theoretical concepts with practical applications.
Objectives
- Learn the knowledge and skills to build robust and scalable web applications using Java and Spring Boot.
- Learn to create dynamic, user-friendly web interfaces using templating engines like Thymeleaf.
- Understand the core concepts and best practices of Continuous Integration and Continuous Deployment for automating builds, testing, and deployment processes.
- Apply hands-on experience in setting up projects, integrating databases, securing applications, and deploying to cloud platforms.
- Implement the best practices in coding, testing, containerization, and deployment to ensure maintainable and efficient workflows.
Methodology
- Interactive Lectures
- Hands-on Labs
- Project
- Live Demo
- Group Discussion and Q&A
Target Audience
Professionals with basic Java knowledge looking to enhance their skills in web development and CI/CD practices
Prerequisite
- Familiarity with core Java concepts such as classes, objects, inheritance, and exception handling.
- Familiarity with using an Integrated Development Environment (IDE) like IntelliJ IDEA, Eclipse, or VS Code.
- Basic knowledge of HTTP, REST APIs, and client-server architecture. (Optional)
Topics:
- Java Recap
- OOP principles
- Collections
- Error handling.
- Java 8 : Lambda Expression, Streams, Optional
- Java Web Frameworks Overview:
- Introduction to Spring Boot
- Spring Boot Modules
- Spring MVC
- Spring Data
- Spring Security
- Building a Simple API:
- Setting up a Spring Boot project.
- Writing RESTful endpoints with JSON serialization.
- Create a simple REST API
- SOLID principles and proper exception handling.
Topics:
- Dependency Injection and Bean Lifecycle.
- Persistence with JPA and Hibernate:
- Setting up a database (e.g., H2 or MySQL).
- CRUD operations using Spring Data JPA.
- DTOs
- Security Essentials:
- Spring Security
- Authentication
- Authorization
- API Enhancement:
- Database integration
- Secure endpoints.
- API Logging
Topics:
- Introduction to Templating in Spring Boot:
- Overview of Thymeleaf and alternatives (FreeMarker, Mustache).
- Setting up and configuring Thymeleaf.
- Building Dynamic Views:
- Passing data from controllers to views.
- Handling forms and rendering dynamic content with Thymeleaf.
- Frontend Integration:
- Adding static resources (CSS, JS, images).
- Using Bootstrap or Tailwind for styling.
- Thymeleaf Fragments
- Hands-on:
- Build a UI for the API (e.g., form to create/view "To-Do" items).
Topics:
- Introduction to CI/CD:
- The role of CI/CD in modern development.
- Overview of common tools: GitHub Actions, Jenkins, GitLab CI/CD.
- Version Control with Git:
- Branching strategies (Git Flow, trunk-based development).
- Writing effective commit messages.
- Testing in Java:
- Unit testing with JUnit and Mockito.
- Integration testing with Spring Boot Test.
- Automating tests in CI pipelines.
- Building with Maven/Gradle:
- Adding build scripts and managing dependencies.
- Hands-on:
- Configure a CI pipeline using GitHub Actions or Jenkins.
- Write and automate unit/integration tests in the pipeline.
Topics:
- Docker Basics:
- Writing a Dockerfile for the Spring Boot app.
- Building and running Docker containers.
- Deployment Platforms:
- Overview of deployment options: AWS, Azure, Google Cloud, Heroku.
- Introduction to Kubernetes
- Setting up multiple environment for deployment
- CI/CD Deployment Automation:
- Adding deployment stages to the CI pipeline.
- Managing environment variables securely.
- Monitoring and Maintenance:
- Setting up health checks, basic monitoring, and logging.
- Rollback strategy
- Hands-on:
- Deploy the containerized app to a cloud platform , eg: AWS
- Add monitoring and error reporting.
Programme scope, delivery arrangements and suitability are confirmed during enquiry.