Spring Core XML Configuration
- Setter Injection
- Constructor Injection
Annotation Configuration
- Spring, @Autowired, @Qualifier, @Value
- JSR250, @Resource, @PostConstruct, @PreDestroy
- JSR330, @Inject, @Named, @Singleton
- JUnit and Spring
Java Configuration
- @Configuration and @Bean
- @ComponentScan, includeFilters and excludeFilters
- PropertySourcesPlaceholderConfigurer and Expression Language (EL)
- Spring Expression Language (SPEL)
Spring MVC Primer (brief)
- DispatcherServlet
- @RequestParam, @ModelAndView and @ModelAttributes
Spring Boot Basics
- Spring Starter Projects
- @SpringBootApplication and auto configuration
- Using application.properties and application.yaml
- Changing server port and context root
- Using Spring Environment object and @Value
- Logging
- Commons Logging, Logback
- Log4j2
Spring Boot Externalize Configuration
- @Value versus @ConfigurationProperties
- Relaxed Binding
- JSR 303 Validation
- Initializers and Command Line Runners
- Dynamic Active Profile Selection
- Controllers and ViewResolvers
Contollers and RestControllers
- Creating Services, @GetMapping, @PostMapping, @RequestMapping, @ResponseBody, @RequestBody
- @RequestParam with Optional
- @PathVariable and URI Templates
- ResponseEntity
- Headers and status codes
RestControllers and Content Negotiation
- Suffix Negotiation
- Request parameter negotiation
- Accept header negotiation
- Deploying a service as a WAR
RestTemplate Clients
- Using getForObject, getForEntity, exchange
- Posting data to services
- HttpEntity
- HttpHeaders
Spring Boot Actuators
- Health and Info Endpoints
- Customizations in exposure
- Custom metrics using Micrometer
- @Endpoint custom actuators, @ReadOperation, @WriteOperation
- EventListeners
- Monitoring Services through Prometheus
Persistence Frameworks
- JPA, EntityManagers, Entity Classes, Annotation mappings
- Spring JPA Data, CrudRepository, PagingAndSortingRepository
- Spring Data REST
- @Projections and Excerpts
- @OneToMany relationships
- HAL Browser
Spring Cloud Introduction
- Edge services using Zuul
- Callback methods via Hystrix
- Service Discovery
- Scale Services with Docker Containers
Spring Security
- Spring Security Overview
- Authentication and Authorization
- @EnableGlobalMethodSecurity
- JdbcUserDetailsConfigurerManager and UserDetailsServices
- HTTPS
- Using OAuth2
Testing Services
- Unit Tests
- MockMvcBuilders and MockMvcRequestBuilders
- @WebMvcTest
- Using Mockito and @MockBean
- Integration Tests with @SpringBootTest