1 DIFFERENT FUNCTIONALITIES
1.1 Validation
1.1.1 Validate - Request Parameters
1.1.2 Validate - DTO - From Request Parameters
1.1.3 Validate - DTO - From JSON
1.1.4 Validate - Custom Annotation
1.1.5 Catch Exception - Using @ExceptionHandler
1.1.6 Catch Exception - Using @ControllerAdvice
1.1.7 Throw Exception
1.2 WebClient
1.2.1 Server
1.2.2 Client - Mono
1.2.3 Client - Flux
1.3 Tasks
1.3.1 Startup
1.3.2 Scheduled
1.4 Custom Banner
2 FILTERS & INTERCEPTORS
2.1 Filters
2.1.1 Create Filter - Using Implements Filter
2.1.2 Create Filter - Using Extends OncePerRequestFilter
2.1.3 Create Filter Chain
2.1.4 Block Requests
2.1.5 HTTP Request Parameters - Get
2.1.6 HTTP Request Parameters - Add
2.1.7 HTTP Request Parameters - Edit
2.1.8 Apply Filter only for specific URL
2.2 Interceptors
2.2.1 Create Interceptor - Implements HandlerInterceptor
2.2.2 Create Interceptor Chain
2.2.3 HTTP RequestResponse - Get Parameters
3 LOGGING
3.1 Slf4j
3.1.1 Using LoggerFactory
3.1.2 Using @Slf4j
3.1.3 Logback
3.1.4 Logback - Configure - XML
3.1.5 Logback - Configure - XML - DB
3.1.6 Logback - Configure - XML - DB - Custom
3.1.7 Logback - Configure - Properties
3.1.8 Log4j
3.1.9 Log4j - Configure - XML
3.1.10 Log4j - Configure - Properties
3.2 AOP Annotations
3.2.1 Log Start End
3.2.2 Log Execution Time
4 TESTING
4.1 JUnit 5
4.1.1 Create Test Class - Manually
4.1.10 assertThrows()
4.1.2 Create Test Class - Automatically
4.1.3 Run Tests
4.1.4 Example
4.1.5 @SpringBootTest
4.1.6 @Test
4.1.7 @Disable
4.1.8 @BeforeAll, @AfterAll, @BeforeEach, @AfterEach
4.1.9 assert...()
4.2 Mockito
4.2.1 Mock - Object - @Mock
4.2.10 verify() - ArgumentMatchers
4.2.11 verify() - ArgumentCaptor
4.2.2 Mock - Object - @MockBean
4.2.3 Mock - Object - @Spy
4.2.4 Mock - Object - @Spybean
4.2.5 Mock - Method - when()
4.2.6 Mock - Method - given()
4.2.7 Mock - Method - doReturn()
4.2.8 @InjectMocks
4.2.9 verify()
4.3 MockMVC
4.3.1 @WebMvcTest
4.3.2 Test - Request - URL Mapping
4.3.3 Test - Request - Parameters
4.3.4 Test - Request - Path Variables
4.3.5 Test - Request - Body - JSON
4.3.6 Test - Response - Status
4.3.7 Test - Response - Body - Text
4.3.8 Test - Response - Body - JSON