Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
Introduction to Groovy
- Getting started with Apache Groovy
- The history and evolution of the Groovy language
- Groovy’s relationship with the Java Virtual Machine
- Groovy as both a scripting and programming language
- Common scenarios for using Groovy
- Integrating Groovy into Java-based projects
- The benefits of using Groovy alongside Java
- An overview of the course sample application
Overview of Groovy Features
- Dynamic typing and the option for static typing
- Groovy’s scripting capabilities
- Concise syntax and language improvements
- Closures and functional programming concepts
- Groovy collections and extended APIs
- Operator overloading techniques
- String interpolation features
- Safe navigation and the Elvis operator
- Developing Domain-Specific Languages (DSLs)
- Meta-programming capabilities
- The Groovy Development Kit (GDK)
Setting up the Development Environment
- Installation and configuration of Groovy
- Working with Groovy distributions
- Executing Groovy via the command line
- Running Groovy scripts
- Setting up an Integrated Development Environment (IDE)
- Creating a new Groovy project
- Managing project dependencies
- Integrating Groovy within Java projects
- Configuring the environment for containerized development
Writing Your First Groovy Application
- Creating a basic Groovy script
- Understanding the structure of Groovy scripts
- Executing Groovy applications
- Using the
printlnstatement - Working with variables
- Defining methods
- Adding comments and documentation
- Building a simple sample application
- Compiling Groovy code
Getting Familiar with Groovy's Syntax
- Groovy statements and expressions
- Semicolons and optional syntax elements
- Variables and constants
- Dynamic and explicit typing
- String literals and interpolation
- Single-line and multi-line strings
- Operators and expressions
- Groovy operators and shortcuts
- Handling null values
- Safe navigation operator
- The Elvis operator
- Multiple assignment operations
Using Groovy's Data Types and Collections
- Primitive and object types
- Numbers and numeric operations
- Strings and characters
- Boolean values
- Date and time-related values
- Lists
- Maps
- Sets
- Ranges
- Iterating through collections
- Transforming collections
- Filtering and searching within collections
- Sorting and grouping data
- Groovy collection methods
Using Groovy Closures
- Understanding the concept of closures
- Closure syntax
- Closure parameters
- Implicit closure parameters
- Invoking closures
- Using closures as variables
- Passing closures as method arguments
- Returning closures from methods
- Closures and their relationship with collections
- Using closures for filtering and data transformation
- Scope rules and variable capture
- Closures for functional programming
- Practical patterns using closures
Controlling Program Flow with Groovy Control Structures
- Conditional statements
ifandelseconstructs- Nested conditional logic
switchstatements- Loops and iteration mechanisms
for,while, anddo-whileloops- Using ranges within loops
- Utilizing closures for iteration
breakandcontinuestatements- Exception handling strategies
try,catch, andfinallyblocks- Throwing custom exceptions
- Groovy-specific control flow features
Implementing Object Oriented Programming (OOP) in Your Application
- Defining Groovy classes
- Properties and fields
- Constructors
- Methods
- Encapsulation principles
- Inheritance
- Interfaces
- Abstract classes
- Polymorphism
- Method overriding
- Method overloading
- Groovy getters and setters
- Traits
- Enums
- Creating domain models for the sample application
Runtime and Compile-Time Meta-Programming
- Introduction to Groovy meta-programming
- Dynamic method invocation
- Expando objects
- Manipulating methods and properties at runtime
- Categories and extension mechanisms
- The MetaClass
- Dynamically adding methods
- Intercepting method calls
- Compile-time transformations
- Common Abstract Syntax Tree (AST) transformations
- Best practices for responsible meta-programming
- Practical examples of meta-programming
Working with Builders
- Introduction to the builder pattern
- Groovy builders and their purpose
- Creating hierarchical structures
- Building XML structures
- Generating JSON structures
- Generating HTML and markup
- Configuring builder output
- Using closures within builders
- Creating custom builders
- Applying builders in Domain-Specific Languages
Accessing a Database with Groovy
- Concepts of database connectivity
- Connecting Groovy applications to databases
- JDBC and Groovy database APIs
- Configuring database connections
- Executing SQL queries
- Reading query results
- Performing inserts, updates, and deletions
- Using parameterized queries
- Managing transactions
- Handling database exceptions
- Working with Groovy SQL
- Building database functionality for the sample application
Calling Java from Groovy
- Interoperability between Groovy and Java
- Utilizing Java classes in Groovy
- Calling Java methods
- Working with Java libraries
- Using Java collections
- Handling Java exceptions
- Comparing Groovy and Java syntax
- Calling Groovy code from Java
- Mixing Groovy and Java source files
- Integrating Groovy into existing Java applications
- Best practices for interoperability
Connecting to REST Services and Applications
- Introduction to REST APIs
- HTTP concepts for Groovy applications
- Sending HTTP requests
- Handling GET, POST, PUT, and DELETE operations
- Working with request parameters and headers
- Processing JSON responses
- Constructing JSON request bodies
- Managing authentication
- Handling HTTP errors
- Consuming external REST services
- Integrating REST functionality into the sample application
Working with the GDK
- Introduction to the Groovy Development Kit
- Enhanced Java APIs
- String manipulation
- Enhanced collection operations
- File and directory management
- Reading and writing files
- Working with streams
- Processing XML data
- Processing JSON data
- Handling dates and times
- Utility methods and convenience APIs
- Selecting the appropriate GDK tools
Unit Testing a Groovy Application
- Introduction to testing Groovy applications
- Concepts of test-driven development
- Writing unit tests
- Using testing frameworks
- Structuring test classes
- Writing assertions
- Testing classes and methods
- Testing closures
- Testing exception handling
- Mocking dependencies
- Data-driven testing
- Testing database-related functionality
- Testing REST integrations
- Running and analyzing test results
Troubleshooting
- Diagnosing Groovy syntax errors
- Debugging runtime errors
- Resolving compilation issues
- Troubleshooting Java interoperability problems
- Debugging closures and collection operations
- Investigating database connectivity issues
- Troubleshooting REST API integrations
- Debugging meta-programming behavior
- Utilizing logging and diagnostic tools
- Practical troubleshooting exercises
Summary and Conclusion
- Review of Groovy language fundamentals
- Recap of syntax, data types, and collections
- Review of closures and functional programming
- Review of object-oriented programming principles
- Review of meta-programming and builders
- Review of database and REST integration
- Review of Groovy and Java interoperability
- Review of GDK capabilities
- Review of testing practices
- Best practices for Groovy application development
- Final hands-on exercise
- Q&A and discussion
Requirements
- Programming experience in any language
21 Hours
Testimonials (1)
The extra information that was shared, the training was not straightforward groovy, which was nice.