Spring Framework
This course covers Spring’s Core module to reduce coupling and increase the flexibility, ease of maintenance, and testing of your applications. It also covers many important capabilities of Spring, including easing configuration with Spring Boot, integrating Hibernate and JPA persistence layers with Spring and Spring Data, and using Spring’s declarative transaction capabilities. The course includes integration of Spring with Java EE Web applications, a solid introduction to Spring MVC, building RESTful resources with Spring MVC, and an overview of Spring’s reactive programming model for repositories and Web resources.
PREREQUISITES
Students should be comfortable working with computers, accessing files, starting programs, using a browser, etc. They should also have a good working knowledge of Java, including using inheritance and interfaces, and be comfortable writing and executing Java programs. They should also have some familiarity with HTML, HTTP, and the World Wide Web.
Upon completion of this course, the student will be able to:
- Understand core principles of Spring and Dependency Injection (DI)/Inversion of Control
- Use the Spring Core module and DI to configure and wire application objects (beans) together
- Know the different types of metadata (XML, annotations/@Component, and Java Configuration/@Configuration), and how and when to use them
- Understand and use lifecycle events, bean scopes, and the Spring API
- Use Spring Boot to simplify dependency management and configuration
- Work with the ORM (Object-Relational Mapping) module to integrate Spring with technologies such as Hibernate or JPA.
- Use Spring Data to automatically generate JPA-based repository classes
- Understand and use Spring’s transaction support, including the easy-to-use Java annotation support, as well as the tx/aop XML configuration elements
- Integrate Spring with Java EE Web applications
- Build Web applications with Spring MVC, including using Java config and Servlet 3
- Understand and use the core capabilities of Spring’s Reactive programming support
- Understand REST, and use Spring MVC to build RESTful services
- Use Ajax-based front ends with Spring MVC / Spring REST
- Introduction to Spring
- Overview of Spring Technology
- Motivation for Spring, Spring Architecture
- The Spring Framework
- Spring Introduction
- Declaring and Managing Beans
- ApplicationContexts – The Spring Container
- XML and @Component/@Named Config
- Dependencies and Dependency Injection (DI)
- Inversion of Control
- Examining Dependencies
- Dependency Inversion / Dependency Injection (DI)
- DI in Spring – XML and @Autowired
- Configuration in Depth
- Java Based Configuration (@Configuration)
- Overview, @Configuration, @Bean
- Integrating Configuration Types
- XML and @Component Pros/Cons
- Choosing a Configuration Style
- Bean Scope and Lifecycle
- Configuring Scope
- Bean Lifecycle / Callbacks
- Enterprise JavaBeans
- Profiles
- Spring Boot Overview
- maven and Spring
- Spring Boot Structure
- Spring Boot Starters
- Spring JMX
- Other Capabilities
- Spring Testing
- Testing and JUnit Overview
- Writing Tests – Test Classes, asserts, Naming Conventions
- Running Tests – IDE, maven
- Spring TestContext Framework
- Spring and Spring Data with Hibernate/JPA
- Overview of Spring database support
- Configuring a DataSource
- Using Spring with Hibernate
- Using Spring with JPA
- Spring Data Overview
- Using Spring Data
- Spring Data Access
- Spring Transaction (TX) Management
- Overview
- Declarative TX Management (REQUIRED, etc.)
- TX Scope and Propagation
- Pointcut-based Configuration of Transactions
- Spring Web Integration and Intro to Spring MVC
- Java EE Web App Integration
- ContextLoaderListener and WebApplicationContext
- Web MVC Overview
- Spring MVC Basics
- Configuration and the DispatcherServlet
- @Controller, @RequestMapping (Handlers)
- @RequestParam and Parameter Binding
- View Resolvers
- Controller Details – @RequestParam, @PathVariable
- Model Data and @ModelAttribute
- Additional Spring MVC Capabilities
- @ModelAttribute and Reference Data
- Forms and Binding, Spring Form Tags
- Sessions and @SessionAttributes
- Validation / JSR-303
- RESTful Services with Spring
- REST Overview (Characteristics/Capabilities, URI Templates, REST vs SOAP)
- REST and Spring MVC
- Writing RESTful Controllers / @RestController
- JSON Representations for Resources
- Message Converters
- Generating XML
- JAXB and Jackson Message Converters for XML
- Content Negotiation
- Working with JSON and XML
- Generating JSON
- Generating XML using JAXB
- Content Negotiation
- Java Clients for RESTful Services
- Client Requirements and Spring’s RestTemplate
- Common REST Patterns
- GET: Read; POST: Create; PUT: Update; DELETE: Delete
- Programming on the server and client with RestTemplate
- Additional New Features in Spring 5
- Updates to Spring Core
- WebFlux / Reactive Web Framework
- Aspect-Oriented Programming with Spring
- AOP Goals
- Aspect
- Join point
- Advice
- Types of Advice
- AOP Proxies
Is there a discount available for current students?
UMBC students and alumni, as well as students who have previously taken a public training course with UMBC Training Centers are eligible for a 10% discount, capped at $250. Please provide a copy of your UMBC student ID or an unofficial transcript or the name of the UMBC Training Centers course you have completed. Asynchronous courses are excluded from this offer.
What is the cancellation and refund policy?
Student will receive a refund of paid registration fees only if UMBC Training Centers receives a notice of cancellation at least 10 business days prior to the class start date for classes or the exam date for exams.