Collections, hashmap, hashset (VD so sánh tốc độ khi add/access 1tr-10tr phần tử vào collection)
ArrayList vs LinkedList
Stream API
Generic
Enum
Spring Boot
Spring Bean, Spring Component: cần phân biệt được @Bean & @Component
Spring profile & configuration: biết cách get value từ file config, cần biết cách sử dụng nhiều file config (dev, alpha, beta, stg, prod)
IOC Containers, DI: cần phân biệt được các cách Inject/Autowired
Bean Scopes, Bean Life cycle
Spring Data JPA, Entity, Relationship, Fetch Type (Lazy vs Eager): cần phân biệt được các loại Cascade, các FetchType, relationship
Mapping DTO <-> Entity (Mapstruct, Mapper)
Controller, HTTP Methods (POST, GET, PUT, DELETE): cần biết các thành phần request, response, các annotation của request (@Request Param và @PathVariable)
Design Pattern trong Spring boot ( Singleton Bean, Factory Pattern,... )
Authentication vs Authorization: Spring Security, tìm hiểu về tầng filter, generate/validate JWT, refresh token.
Scheduler/Cronjob, Transactional, @Async
Repository: hiểu các cách query data
Automatic Custom Queries
Manual Custom Queries (JPQL)
Native query
Customizing the Result with Class Constructors
Customizing the Result with Spring Data Projection (open/close)
Join table, Sort, Paging
Cache query
How to solve n+1 query problem?
Mock, Unit test, Integration test: tìm hiểu về Mockito.mock() vs @Mock vs @MockBean, test controller, test service, test repo