Craig Walls

Author of 'Spring in Action' and 'Building Talking Apps'

Craig Walls is a Principal Engineer, Java Champion, Alexa Champion, and the author of Spring AI in Action, Spring in Action, and Build Talking Apps. He's a zealous promoter of the Spring Framework, speaking frequently at local user groups and conferences and writing about Spring. When he's not slinging code, Craig is planning his next trip to Disney World or Disneyland and spending as much time as he can with his wife, two daughters, 1 bird and 2 dogs.

Presentations

Penning Powerful Prompts: Crafting effective prompts to get the best from an LLM

In this session, we'll cover several useful prompt engineering techniques as well as some emerging patterns that are categorized within the “Agentic AI” space and see how to go beyond simple Q&A to turn your LLM of choice into a powerful ally in achieving your goals.

At it's core, Generative AI is about submitting a prompt to an LLM-backed API and getting some response back. But within that interaction there is a lot of nuance, particularly with regard to the prompt itself.

It's important to know how to write effective prompts, choosing the right wording and being clear about your expectations, to get the best responses from an LLM. This is often called “prompt engineering” and includes several patterns and techniques that have emerged in the Gen AI space.

Building Agents in Java and Spring

In this example-driven session, we'll take a look at how to build both explicit agentic workflows using Spring AI as well as defining autonomous agents using Embabel.

Over the past few years, we've seen the buzz around Generative AI evolve from simple prompts, to document- and tool-augmented prompts, to more formalized collections of tools and prompts in Model Context Protocol (MCP). And for awhile now, agents are all the buzz. Unfortunately, this has presented a paradox wherein everyone knows what agents are and at the same time, nobody knows what agents are.

Regardless of what you think an agent is, it's clear that agents are the most useful when they are able to work within the ecosystems of existing enterprise systems. Since many enterprise systems are based in Java, it would make sense to develop agents in Java so that they can take advantage of prior work that has been developed in Java and the skillsets that were involved. In short, it's unnecessary to develop in Python if you don't already have Python in play in such a system.

Fortunately, frameworks such as Spring AI make easy work of integrating Generative AI in Java. And applying agentic workflow patterns in Java is just as easy. What's more, an agentic framework such as Embabel (which is built on Spring and Spring AI) make developing autonomous, self-planning agents in Java as straightforward as it is to develop web applications or APIs in Java.

Generative AI Superpowers

Building and using Model Context Protocol in Java with Spring AI

In this example-driven session, you'll learn how to build an MCP server in Java using Spring AI, integrate it with clients such as Claude Code and Cursor, and even create your own MCP clients.

On their own, Large Language Models (LLMs) are only able to generate responses based on their training. While their training may be vast, it will not include any actual data from your organization's databases and systems. What's more, an LLM may be able to answer questions, they are unable to actually interact with your enterprise and take action.

Enter Model Context Protocol (MCP). MCP defines a standard with which you can collection a set of related tools, prompts, and resources and make those available to an LLM to make use of. With MCP, your LLMs will be able to interact with databases, APIs, and other components in your enterprise to get things done.

Building and using MCP in Java has never been easier than it is now with Spring AI. Spring AI introduced support for MCP in its 1.0 release and improved upon it tremendously in Spring AI 1.1.

Building Intelligent Spring Applications with Spring AI

By now, you've no doubt noticed that Generative AI is making waves across many industries. In between all of the hype and doubt, there are several use cases for Generative AI in many software projects. Whether it be as simple as building a live chat to help your users or using AI to analyze data and provide recommendations, Generative AI is becoming a key piece of software architecture.

So how can you implement Generative AI in your projects? Let me introduce you to Spring AI.

For over two decades, the Spring Framework and its immense portfolio of projects has been making complex problems easy for Java developers. And now with the new Spring AI project, adding Generative AI to your Spring Boot projects couldn't be easier! Spring AI brings an AI client and templated prompting that handles all of the ceremony necessary to communicate with common AI APIs (such as OpenAI and Azure OpenAI). And with Spring Boot autoconfiguration, you'll be able to get straight to the point of asking questions and getting answers your application needs.

In this handson workshop, you'll build a complete Spring AIenabled application applying such techniques as prompt templating, Retrieval Augmented Generation (RAG), conversational history, and tools invocation. You'll also learn prompt engineering techniques that can help your application get the best results with minimal “hallucinations” while minimizing cost.

Building Intelligent Spring Applications with Spring AI

By now, you've no doubt noticed that Generative AI is making waves across many industries. In between all of the hype and doubt, there are several use cases for Generative AI in many software projects. Whether it be as simple as building a live chat to help your users or using AI to analyze data and provide recommendations, Generative AI is becoming a key piece of software architecture.

So how can you implement Generative AI in your projects? Let me introduce you to Spring AI.

For over two decades, the Spring Framework and its immense portfolio of projects has been making complex problems easy for Java developers. And now with the new Spring AI project, adding Generative AI to your Spring Boot projects couldn't be easier! Spring AI brings an AI client and templated prompting that handles all of the ceremony necessary to communicate with common AI APIs (such as OpenAI and Azure OpenAI). And with Spring Boot autoconfiguration, you'll be able to get straight to the point of asking questions and getting answers your application needs.

In this handson workshop, you'll build a complete Spring AIenabled application applying such techniques as prompt templating, Retrieval Augmented Generation (RAG), conversational history, and tools invocation. You'll also learn prompt engineering techniques that can help your application get the best results with minimal “hallucinations” while minimizing cost.

Observing AI with Spring Boot and Spring AI

Modern application observability involves tracking key metrics and tracing the flow of an application, even across service boundaries. Spring Boot 3 introduced some powerful metrics and tracing capabilities based on Micrometer to open a window into your application's inner-workings.

Among the things you might want to keep an eye on in your Generative AI applications are how many interactions and how much time is spent with vector stores and AI provider APIs and, of course, how many tokens are being spent by your application. And being able to trace the flow of prompts, data, and responses through your application can help identify problems and bottlenecks.

Great news! Spring AI comes equipped to record metrics and tracing information through Micrometer. In this session, you'll learn how to put Spring AI observability to work for you. You'll learn about the metrics it exposes as well as the keys you can use to build dashboards and tracing to build a window into your Generative AI applications.

Books

Spring AI in Action

by Craig Walls

Generative AI tools like ChatGPT cause an immediate jaw drop for almost everyone who encounters them. Until recently, though, Java developers have had few good tools for adding AI features to existing and new applications. Spring AI, an exciting new extension for Spring and Spring Boot, changes the equation. Spring AI provides generative AI capabilities natively within the framework, so you can stick with Java end-to-end. Spring AI in Action shows you how!

Spring in Action, 6th Edition

by Craig Walls

A new edition of the classic bestseller! Spring in Action, 6th Edition covers all of the new features of Spring 5.3 and Spring Boot 2.4 along with examples of reactive programming, Spring Security for REST Services, and bringing reactivity to your databases. You'll also find the latest Spring best practices, including Spring Boot for application setup and configuration.

Build Talking Apps for Alexa

by Craig Walls

Voice recognition is here at last. Alexa and other voice assistants have now become widespread and mainstream. Is your app ready for voice interaction? Learn how to develop your own voice applications for Amazon Alexa. Start with techniques for building conversational user interfaces and dialog management. Integrate with existing applications and visual interfaces to complement voice-first applications. The future of human-computer interaction is voice, and we’ll help you get ready for it.

Spring in Action, 5th Edition

by Craig Walls

Spring Framework has been making Java developers more productive and successful for over a dozen years, and it shows no signs of slowing down!

Spring in Action, 5th Edition is the fully-updated revision of Manning's bestselling Spring in Action. This new edition includes all Spring 5.0 updates, along with new examples on reactive programming, Spring WebFlux, and microservices. Readers will also find the latest Spring best practices, including Spring Boot for application setup and configuration.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.