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
- Overview of Apache Groovy
- History and evolution of the language
- The relationship between Groovy and the Java Virtual Machine
- Groovy as both a scripting and full-fledged programming language
- Common use cases for Groovy
- Utilizing Groovy within Java-based projects
- Benefits of pairing Groovy with Java
- Preview of the sample application
Exploring Groovy Features
- Dynamic typing versus optional static typing
- Groovy scripting capabilities
- Concise syntax and language enhancements
- Closures and functional programming concepts
- Groovy collections and API improvements
- Operator overloading
- String interpolation
- Safe navigation and the Elvis operator
- Developing Domain-Specific Languages
- Meta-programming capabilities
- The Groovy Development Kit (GDK)
Configuring the Development Environment
- Installing and setting up Groovy
- Managing Groovy distributions
- Utilizing the command line interface
- Executing Groovy scripts
- Setting up an Integrated Development Environment (IDE)
- Initializing a new Groovy project
- Managing project dependencies
- Integrating Groovy with existing Java projects
- Configuring the environment for containerized development
Building Your First Groovy Application
- Creating a basic Groovy script
- Understanding the structure of Groovy scripts
- Running Groovy applications
- Using the
printlnstatement - Working with variables
- Defining methods
- Adding comments and documentation
- Assembling a simple sample application
- Compiling Groovy code
Mastering Groovy Syntax
- Statements and expressions in Groovy
- Semicolons and optional syntax elements
- Variables and constants
- Dynamic typing versus explicit typing
- String literals and interpolation
- Single-line and multi-line strings
- Operators and complex expressions
- Groovy-specific operators and shortcuts
- Null handling strategies
- Safe navigation operators
- The Elvis operator
- Multiple assignment
Utilizing Groovy Data Types and Collections
- Primitive and object types
- Numbers and numeric operations
- Strings and character handling
- Boolean logic
- Date and time values
- Lists
- Maps
- Sets
- Ranges
- Iterating through collections
- Transforming collections
- Filtering and searching data
- Sorting and grouping data
- Groovy collection methods
Working with Groovy Closures
- Concept of closures
- Closure syntax
- Defining closure parameters
- Using implicit closure parameters
- Invoking closures
- Storing closures in variables
- Passing closures as arguments
- Returning closures from methods
- Using closures with collections
- Applying closures for filtering and transformation
- Scope rules and variable capture
- Leveraging closures for functional programming
- Practical patterns involving closures
Managing Program Flow with Control Structures
- Conditional logic
- Using
ifandelse - Nested conditional statements
switchstatements- Loops and iteration
for,while, anddo-whileloops- Using ranges in loops
- Leveraging closures for iteration
breakandcontinuekeywords- Exception handling mechanisms
try,catch, andfinallyblocks- Throwing custom exceptions
- Groovy-specific control-flow features
Applying 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
- Enumerations (Enums)
- Creating domain models for the sample application
Runtime and Compile-Time MetaProgramming
- Introduction to Groovy meta-programming
- Dynamic method invocation
- Using Expando objects
- Manipulating methods and properties at runtime
- Categories and extension methods
- The MetaClass mechanism
- Dynamically adding methods
- Intercepting method calls
- Compile-time AST transformations
- Common Abstract Syntax Tree (AST) transformations
- Responsible use of meta-programming
- Practical examples of meta-programming
Working with Builders
- Introduction to the Builder pattern
- Purpose and utility of Groovy builders
- Creating hierarchical structures
- XML builders
- JSON builders
- Generating HTML and markup
- Configuring builder output
- Combining closures with builders
- Creating custom builders
- Applying builders in DSL development
Accessing Databases with Groovy
- Database connectivity fundamentals
- Connecting Groovy applications to databases
- JDBC and Groovy database APIs
- Configuring database connections
- Executing SQL queries
- Processing query results
- Performing Insert, Update, and Delete operations
- Using parameterized queries
- Managing transactions
- Handling database exceptions
- Utilizing Groovy SQL
- Implementing database functionality in the sample application
Interoperability: Calling Java from Groovy
- Groovy and Java interoperability
- Accessing Java classes from Groovy
- Invoking 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
Integrating with REST Services and Applications
- Introduction to REST APIs
- HTTP concepts relevant to Groovy applications
- Sending HTTP requests
- Handling GET, POST, PUT, and DELETE methods
- Managing request parameters and headers
- Processing JSON responses
- Constructing JSON request bodies
- Implementing authentication
- Managing HTTP errors
- Consuming external REST services
- Incorporating REST functionality into the sample application
Utilizing the Groovy Development Kit (GDK)
- Introduction to the GDK
- Enhanced Java APIs
- String manipulation features
- Enhanced collection utilities
- File and directory operations
- Reading and writing files
- Working with streams
- Processing XML
- Processing JSON
- Handling dates and times
- Utility methods and convenience APIs
- Selecting appropriate GDK features
Unit Testing Groovy Applications
- Introduction to testing Groovy applications
- Test-driven development (TDD) concepts
- 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 techniques
- Testing database-related functionality
- Testing REST integrations
- Executing and analyzing test results
Troubleshooting and Debugging
- Diagnosing Groovy syntax errors
- Debugging runtime errors
- Addressing compilation issues
- Troubleshooting Java interoperability problems
- Debugging closures and collection operations
- Investigating database connectivity issues
- Troubleshooting REST API integrations
- Debugging meta-programming behavior
- Using logging and diagnostic tools
- Practical troubleshooting exercises
Summary and Conclusion
- Recap of Groovy language fundamentals
- Review of syntax, data types, and collections
- Review of closures and functional programming
- Review of object-oriented programming concepts
- 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 best practices
- Best practices for Groovy application development
- Final hands-on exercise
- Q&A session
Requirements
- Programming experience in any general-purpose language
21 Hours
Testimonials (1)
The extra information that was shared, the training was not straightforward groovy, which was nice.