Frontend
Provides functionality for the user. It deals with the user input and showing output to the user.
Backend
Provides data, algorithms, and logic for the frontend to use.
Model View Controller (MVC)
Is a pattern that divides the application based on responsibility. The end result is that the Model and View are unaware that the other exists. This decouples the Model and View.
Model (MVC) characteristics
View (MVC) characteristics
Controller (MVC) characteristics
Dependency Injection
Is a design pattern that implements IoC. It inverts control of the instantiation of dependencies from the class using them to a dependency injection container. Rather than instantiating classes with “new” in our class, they will be injected into our class at runtime.
Inversion of Control (IoC)
Is an object-oriented principle that inverts the flow of normal flow of control of an application from a class to a higher layer. It is commonly used in Java Frameworks.
Dependency Injection Container
Is code that creates and injects the dependencies into our class. Spring has a Dependency Injection Container built into it.
Dependency Injection in Spring Boot
RESTful Service Design - End Points
RESTful Service Design - CRUD
HTTP Response Status Codes
2xx Status Codes can be applied to a controller method using the @ResponseStatus annotation.
4xx Status Codes can be returned by throwing an Exceptions from the Controller Method.