SF-CORE
![Spring Core Training logo](/documents/415247/0/spring-core-training.png/bcd3645b-114d-dae2-5239-e1fccca40fd5?t=1721579759567)
Formats: | Asynchronous |
Blended | |
Online | |
Onsite | |
Part-time | |
Level: | Beginner |
Prerequisistes: | |
Recommended Knowledge | |
Solid experience with Java |
Formats: We offer our training content in a flexible format to suit your needs. Contact Us if you wish to know if we can accommodate your unique requirements.
Level: We are happy to customise course content to suit your skill level and learning goals. Contact us for a customised learning path.
Spring Core Training SF-CORE
Our Spring Core training course is meticulously designed for Java developers who are eager to master the foundational aspects of the Spring Framework. This course is ideal for individuals who have a basic understanding of Java and want to deepen their knowledge of Spring's core capabilities. Whether you're a junior developer looking to build a solid foundation or an experienced professional aiming to enhance your expertise in Spring, this course provides the essential skills and advanced techniques necessary to excel in modern enterprise application development.
Why Choose Our Course?
Our course stands out by offering a comprehensive and detailed exploration of the Spring Framework, from the basics of dependency injection and Java configuration to advanced concepts such as Spring AOP, transaction management, and reactive programming. You will learn how to effectively use Spring to manage data, secure applications, and build RESTful web services. The curriculum is designed to ensure practical application through hands-on labs and real-world exercises, enabling you to apply what you've learned directly to your projects. By the end of this course, you will be proficient in utilizing Spring to develop robust, scalable, and maintainable applications.
Flexible Learning Options and Affordability
Understanding the diverse needs of our students, we offer flexible learning options that include self-paced study, mentor-led sessions, and instructor-led remote training. Our self-paced option allows you to learn at your own speed, while our mentor-led training provides personalized guidance from industry experts. For those who prefer interactive learning, our instructor-led remote sessions offer engaging, real-time instruction. Additionally, our courses are affordably priced, making high-quality Spring training accessible to everyone. Join us to gain the skills needed to advance your career in Java development without breaking the bank.
Spring Core Training Course Outline
Module 1: Overview of the Spring Framework
- Define the Spring Framework
- Comprehensive introduction to Spring
- Key components and architecture
- Explain what Spring is used for
- Application contexts, dependency injection, and AOP
- Explain why Spring is successful
- Flexibility, robustness, and ease of integration
Module 2: Dependency Injection Using Java Configuration 1
- Define Spring Beans using Java code
- Using @Bean and Java configuration
- Access Beans in the Application Context
- Using ApplicationContext and BeanFactory
- Handle Multiple Configuration Files
- Combining and importing configuration files
- Handle Dependencies between Beans
- Dependency injection and wiring
- Explain and Define Bean Scopes
- Singleton, prototype, request, session, and global session
Module 3: Dependency Injection Using Java Configuration 2
- Use External Properties to Control Configuration
- Using @Value and Environment
- Demonstrate the Purpose of Profiles
- Configuring and activating Spring profiles
- Use the Spring Expression Language (SpEL)
- Dynamic bean wiring and expression evaluation
- Explain How Spring Java Configuration Implements Singleton Beans
- Ensuring singleton behavior with @Configuration and @Bean
Module 4: Annotation-Driven Configuration
- Explain and Use Annotation-Based Configuration
- @Component, @Service, @Repository, @Controller
- Discuss Best Practices for Configuration Choices
- When to use XML, annotations, or Java configuration
- Use @PostConstruct and @PreDestroy
- Lifecycle callbacks
- Explain and Use Spring’s Stereotype Annotations
- Component scanning and context configuration
Module 5: Factories in Spring
- Describe the Factory Pattern
- Concepts and benefits of using factories
- Explain the Purpose of Factory Beans and Be Able to Use Them
- Using FactoryBean for complex bean creation
Module 6: Advanced Spring Concepts
- Explain the 3 Phases of the Spring Bean Lifecycle
- Instantiation, dependency injection, initialization, destruction
- Use a BeanFactoryPostProcessor and a BeanPostProcessor
- Customizing bean creation and initialization
- Explain How Spring Proxies Add Behavior at Runtime
- AOP proxies and ProxyFactoryBean
- Describe Issues When Injecting Beans by Type
- Autowiring pitfalls and type safety
Module 7: Testing Spring Applications
- Explain the Concepts of Test-Driven Development
- Principles and benefits of TDD
- Write Tests Using JUnit 5
- Unit and integration testing with JUnit
- Write Integration Tests Using Spring
- @SpringBootTest and @ContextConfiguration
- Configure Tests Using Spring Profiles
- Profile-specific test configurations
- Extend Spring Tests to Work with Databases
- Using embedded databases and transaction management
Module 8: Developing Aspects with Spring AOP
- Explain the Concepts Behind AOP and the Problem that It Solves
- Cross-cutting concerns and aspect-oriented programming
- Implement and Deploy an Advice Using Spring
- @Aspect, @Before, @After, @Around
- Use AOP Pointcut Expressions
- Defining pointcuts and applying advice
- Explain the 5 Different Types of Advice and When to Use Them
- Before, after, around, after-returning, after-throwing
Module 9: Introduction to Data Management with Spring
- Explain the Role of Spring in Enterprise Data Access
- Data access abstraction and integration
- Use Spring’s DataAccessException Hierarchy
- Unified exception handling for data access
- Configure Test Databases
- Setting up embedded databases for testing
- Implement Caching
- Using Spring’s caching abstraction
- Discuss NoSQL Databases
- Integration with NoSQL databases like MongoDB
Module 10: Introduction to Spring JDBC
- Explain the Problems with Traditional JDBC
- Boilerplate code and exception handling
- Use and Configure Spring’s JDBC Template
- Simplified database interactions
- Execute Queries Using Callbacks to Handle Result Sets
- RowMapper, ResultSetExtractor
- Handle Exceptions
- Consistent exception handling with DataAccessException
Module 11: Transaction Management with Spring
- Explain Why Transactions Are Used and How Java Supports Them in Different Ways
- ACID properties and transaction management
- Describe and Use Spring Transaction Management
- Programmatic and declarative transactions
- Configure Isolation Levels and Transaction Propagation
- Ensuring data integrity and consistency
- Setup Rollback Rules
- Handling transaction rollbacks
- Use Transactions in Tests
- Transaction management in testing
Module 12: JPA with Spring
- Explain the Basic Concepts of JPA
- Object-relational mapping and entity management
- Configuring JPA in Spring
- EntityManagerFactory and LocalContainerEntityManagerFactoryBean
- Implement a JPA DAO
- Creating and managing data access objects
- Explain How JPA Integration is Implemented by Spring
- Using JpaTransactionManager and @Transactional
Module 13: Spring Boot
- Explain What Spring Boot Is and Why It Is Opinionated
- Simplifying Spring application development
- Describe How Spring Boot Is Driven by Dependencies and Auto-Configuration
- Starters, auto-configuration, and Spring Boot CLI
Module 14: JPA with Spring Boot & Spring Data
- Implement a Spring JPA Application Using Spring Boot
- Setting up a Spring Boot project with JPA
- Create Spring Data Repositories for JPA
- Using Spring Data JPA repositories
Module 15: Spring Web MVC Essentials
- Explain Spring MVC & Request Processing Lifecycle
- Dispatcher servlet and request handling
- Describe the Purpose of the Dispatcher Servlet
- Central request processing component
- Implement a Controller
- Creating and configuring controllers
- Set Up a View and a View Resolver
- Using JSP, Thymeleaf, or other view technologies
- Use Spring Boot in a Web Application
- Creating web applications with Spring Boot
- Explain When to Use @EnableWebMvc
- Configuring Spring MVC
- Deploy a Boot-Driven WAR
- Packaging and deploying Spring Boot applications
Module 16: Spring Boot – Going Beyond Default Settings
- Explain How Auto-Configuration Drives Spring Boot
- Customizing auto-configuration
- Use Various Techniques to Customize Spring Boot
- Configuration properties, profiles, and conditional beans
- Implement Configuration Properties
- Using @ConfigurationProperties
- Fine-Tuning Logging
- Customizing logging with Spring Boot
- Using YAML for Configuration
- Configuring applications with YAML
- Test Spring Boot Applications
- Testing strategies and tools
Module 17: Spring Security
- Explain Basic Security Concepts
- Authentication, authorization, and security principles
- Setup Spring Security in a Web Environment
- Configuring Spring Security for web applications
- Configuring Web Authentication
- Setting up login and authentication mechanisms
- Setup Method Security
- Securing methods with annotations
Module 18: Practical REST Web Services
- Describe the Principles of HTTP REST
- RESTful architecture and best practices
- Use Spring MVC to Build RESTful Servers
- Creating REST endpoints with Spring MVC
- Develop RESTful Clients Using RestTemplate
- Consuming REST APIs with Spring
Module 19: Microservices with Spring
- Describe a Microservices Architecture and Explain the Pros and Cons
- Benefits and challenges of microservices
- Explain the Challenges of Managing Microservices
- Deployment, scaling, and monitoring
- Describe Spring’s Support for Microservice Applications
- Spring Cloud and microservices infrastructure
- Building a Simple Microservice System
- Developing and deploying microservices
Module 20: Reactive Spring Applications
- Describe the Basic Concepts of Reactive Programming
- Asynchronous and non-blocking paradigms
- Write a ‘Reactive’ Spring Application
- Using Project Reactor and Spring WebFlux