Brief Summary
This course takes you through the essentials of software engineering, covering vital tools and frameworks like Maven, JPA, Spring, and Vaadin. You'll learn to build applications from scratch and understand key architectural concepts along the way!
Key Points
-
Understanding the key technologies in software engineering.
-
Building a complete application using various frameworks.
-
Learning about software architectural principles.
Learning Outcomes
-
Feel comfortable using Maven and JPA.
-
Understand the Spring framework and Spring Boot.
-
Be able to create user interfaces with Vaadin.
-
Implement security features in your applications.
-
Learn about web services and microservices architecture.
About This Course
Vaadin Framework, Microservices (REST), Spring, Spring Security, Hibernate, Spring Boot, Maven and JPA
When I started software engineering, I always wanted to code without any configurations, version control or build server configurations. Later, I realized that coding is just one part of software engineering: architectural designs, design patterns and the ability to write reusable and loosely coupled software components are much more important parts of programming.
In this course we are going to talk about the basics of professional software engineering such as how to separate the code into multiple modules or how to use a build framework to build the final application for us.
Before developing the final application from scratch - that wire all the included technologies together - we will consider these technologies on a one by one basis.
In the first section we are going to consider Maven, one of the most popular build frameworks out there. The second chapter is about Java Persistence API and database related problems. The third chapter will cover Spring as far as the XML based configuration is concerned, then we will talk about the new way: the so-called Spring Boot. Finally, we are going to implement an application in which we are going to use all the technologies we have discussed.
Section 1 - Installations
setting up the environment
installing Java, Eclipse, Maven and MySQL
Section 2 - Maven
Section 3 - Java Persistence API (JPA)
why to use databases?
JDBC and the old way
what is Java Persistence API (JPA)
object relation mapping with JPA
how to deal with inheritance with JPA
how to deal with composition with JPA
basic CRUD operations with EntityManager
using Hibernate
Section 4 - Spring Framework
Section 5 - Spring Boot
Section 6 - Vaadin
Section 7 - Wiring all Together (Application from Scratch)
creating a larger application from scratch (student management software)
creating UI components with Vaadin
creating the database structure etc.
deploying and running the application
using Maven to build and run Spring applications
Section 8 - Spring Security
Section 9 - Software Architectural Principles
what is the monolith architecture?
what are web-services?
SOAP and REST web-services
HTTP protocol
the microservice architecture
Section 10 - Microservices
what are microservices?
GET, POST, PATCH and DELETE mappings
@RequestBody annotation
@RequestParam and @PathVariable annotations
customizing the HTTP request and response
Section 11 - Handling JSON (with Jackson)
JSON and Jackson introduction
ignoring properties in the JSON representation
@JsonProperty annotation
dealing with date and time
Section 12 - Handling MySQL Database
Section 13 - Validation and Exception Handling
validating beans and catching exceptions
@ExceptionHandler annotation
@ControllerAdvice annotation
Section 14 - Transactions
Section 15 - RestTemplate and API Gateway
what is an API gateway?
how to use RestTemplate to communicate between web-services?
GET, POST, PATCH and DELETE operations
Thanks for joining the course, let's get started!
Get a good grasp on Maven
Get a good grasp on Java Persistence API (JPA) and Hibernate
Get a good grasp on Vaadin Framework
Warren G.
no response to questions. Some things seem outdated.