PART I. SPRING IOC (theory 7h, practice 2h, homework about 2h)
1. Spring Framework overview
• History
• IoC concept
• Application Context interface
• Spring beans
2. Spring configuration
• XML configuration
• Annotation based configuration
• Java based configuration
• Beans scope
• Bean lifecycle
3. Event bus
• Event publication
• Event subscription with @EventListener
• Filtering events with @EventListener
• Event bus use cases
4. Localization
5. Configuration profiles
6. Spring Expression Language
PART II. SPRING BOOT (theory 1h, practice 1h)
1. What is Spring Boot?
2. Spring Boot root POM spring-boot-starter-parent
3. Auto-configuration
• @SpringBootApplication
• @ComponentScan
• @Configuration
• @EnableAutoConfiguration
4. Ways of Configuration
• Accessing Command Line Properties
• Application Property Files
• Profile-specific Properties
• Placeholders in Properties
• YAML Instead of Properties
• Type-safe Configuration Properties
o Enabling @ConfigurationProperties-annotated types
o Using @ConfigurationProperties-annotated types
o Third-party Configuration
o Merging Complex Types
o @ConfigurationProperties Validation
o @ConfigurationProperties vs. @Value
• Profiles
PART III. SPRING AOP (theory 2h, practice 1h, homework about 2h)
1. AOP use cases
2. Types of advice
3. Pointcut language
4. Aspects chaining
PART IV. SPRING DATA (theory 8h, practice 3h, homework about 2h)
1. CrudRepository
2. JpaRepository
3. @EnableJpaRepositories
4. @EnableTransactionManagement
5. @Transactional annotation
• Timeout
• Readonly flag
6. Defining Query methods
• Query Lookup Strategies
• Query Creation
• Property Expressions
• Special parameter handling
• Limiting Query Results
• Repository Methods Returning Collections or Iterables
• Null Handling of Repository Methods
• Streaming query results
• Async query results
7. Using @Query
• Native queries
• Using sort
• Using named parameters
• Using SpEL expressions
• Modifying Queries
• Applying Query Hints
8. Projections
9. Stored Procedures
10. Query by Example
11. @Transactional query methods
12. Locking
PART V. SPRING REST (theory 2h, practice 2h, homework about 1h)
1. REST services
2. Request and Response payloads
3. Request parameters
4. Path Parameters
5. HTTP headers
6. Constraints
7. Spring HATEOAS
8. Documenting REST service with Swagger
PART VI. SPRING DATA REST (theory 1h)
1. Representing Spring Data repository as REST service
2. Paging and sorting
3. HAL browser
4. Customizing Spring Data REST
Total: theory 21h (70%), practice 9h (30%), homework practice 7h (+23%)