Spring Framework and Spring Boot

  1. Spring Model-View-Controller
    1. The MVC Design Pattern
      1. Model Role
        1. View Role
          1. Controller Role
            1. Benefits of MVC
            2. The DispatcherServlet
              1. Front Controller Pattern
                1. Request Processing Lifecycle
                  1. Handler Mapping
                    1. Handler Adapter
                      1. View Resolution
                        1. Exception Resolution
                        2. Configuration
                          1. Web.xml Configuration
                            1. Java Configuration
                          2. Controller Layer
                            1. @Controller and @RestController
                              1. Differences and Use Cases
                              2. Request Mapping
                                1. @RequestMapping
                                  1. Path Mapping
                                    1. Method Mapping
                                      1. Parameter Mapping
                                      2. HTTP Method Specific Shortcuts
                                        1. @GetMapping
                                          1. @PostMapping
                                            1. @PutMapping
                                              1. @DeleteMapping
                                                1. @PatchMapping
                                              2. Handling Request Data
                                                1. @RequestParam
                                                  1. @PathVariable
                                                    1. @RequestBody
                                                      1. @RequestHeader
                                                        1. @ModelAttribute
                                                          1. @CookieValue
                                                          2. Response Handling
                                                            1. Returning Views
                                                              1. Returning Data
                                                                1. ResponseEntity
                                                                  1. @ResponseBody
                                                                2. Model Layer
                                                                  1. The Model Interface
                                                                    1. Adding Attributes
                                                                    2. ModelAndView Class
                                                                      1. Combining Model and View
                                                                      2. ModelMap Class
                                                                        1. @ModelAttribute Methods
                                                                        2. View Layer
                                                                          1. View Resolution
                                                                            1. View Name Resolution
                                                                            2. ViewResolver Interface
                                                                              1. InternalResourceViewResolver
                                                                                1. BeanNameViewResolver
                                                                                  1. Custom ViewResolvers
                                                                                  2. Common View Technologies
                                                                                    1. Thymeleaf
                                                                                      1. JSP and JSTL
                                                                                        1. FreeMarker
                                                                                          1. Velocity
                                                                                        2. Handling Exceptions
                                                                                          1. @ExceptionHandler
                                                                                            1. Local Exception Handling
                                                                                            2. @ControllerAdvice
                                                                                              1. Global Exception Handling
                                                                                              2. HandlerExceptionResolver
                                                                                              3. Interceptors
                                                                                                1. HandlerInterceptor Interface
                                                                                                  1. Configuration and Usage
                                                                                                  2. File Upload
                                                                                                    1. MultipartResolver
                                                                                                      1. @RequestParam with MultipartFile
                                                                                                      2. Content Negotiation
                                                                                                        1. Accept Header Processing
                                                                                                          1. Content Type Resolution