To be determined
Welcome to "Spring Framework 5 for Application Development," a comprehensive course designed to equip participants with the essential skills and knowledge needed to leverage the power of the Spring Framework in building robust and scalable applications. Spring Framework, renowned for its lightweight and modular architecture, has become a cornerstone in modern Java development, offering a rich set of features and capabilities for building enterprise-grade applications.
Throughout this course, participants will:
By the end of this course, participants will:
Join us on this transformative journey into the world of Spring Framework development. Whether you're a seasoned developer seeking to enhance your skills or a newcomer eager to explore the possibilities of modern Java development, this course offers invaluable insights and practical guidance that will empower you to build robust, scalable, and maintainable applications using the Spring Framework.
1. To introduce students to the possibilities of Spring Framework and its practical application in solving typical problems that arise during development with Spring.
2. To provide students with an overview of the range of products developed under the Spring license (not included in Spring Framework).
• Experience with Java SE development
• Maven
• Desirable:
o JDBC
o Design patterns knowledge: Proxy, Command, Decorator, Template Method, MVC
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%)
Tudose Tudose, Florin-Catalin
Java Champion; Java Chapter Lead; Author at Pluralsight and Manning