You are viewing details from a past event. Please check our upcoming event schedule if you are looking for current content.

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

What's new in Spring

8:30 AM MDT

In this session, I'll lead a guided tour through the latest that Spring has to offer. Whether you're a Spring veteran or a Spring newbie, there will be something new for nearly everyone.

It's been 8 years since Spring 1.0 was released. In that time it has gone from a modest open-source project to being a de facto standard Java application framework. Now, as Spring enters its 8th year, it continues its attack on Java complexity, packed with many new features such as:

  • First-class REST support
  • A new expression language
  • More options for annotation-driven bean wiring
  • Bean profiles
  • Declarative caching abstraction
  • Enhanced Java-based configuration
  • A new “c:” namespace
  • Unified property management
  • And much more

In this session, I'll lead a guided tour through the latest that Spring has to offer. Whether you're a Spring veteran or a Spring newbie, there will be something new for nearly everyone.

NoXML: Spring for XML-Haters

10:30 AM MDT

In this presentation, we'll explore all of the ways to do bean wiring in Spring We'll take a pragmatic view of each style, evaluating their strengths, weaknesses, and applicability to varying circumstances.

Over 10 years ago, Spring entered the enterprise Java scene, bringing a simpler development model rooted in dependency injection, the notion of assembling application components in a loosely-coupled way. With it, however, came a flood of XML configuration, required to declare how those components were to be assembled.

For a variety of reasons, XML has fallen out of favor with much of the development community. Now that there are other frameworks that offer dependency injection without all of the XML, some are suggesting that Spring's heavy use of XML has it destined for the scrap heap.

They don't know Spring.

Although XML-based Spring configuration is still available and still has a place in many Spring applications, it is no longer the only way to do dependency injection in Spring. The past few releases of Spring have brought us new ways of assembling our application objects, including annotation-driven options such as Spring's @Autowired and JSR-330's @Inject and Java-based configuration with Spring JavaConfig. There's even a way to express Spring configuration in Groovy.

Introducing Spring Roo: From Zero to Working Spring Application in Record Time

5:00 PM MDT

In this example-driven session we'll see how to swiftly develop Spring applications using Spring Roo. We'll start with an empty directory and quickly work our way up to a fully functioning web application. You'll see how Roo handles a lot of heavy-lifting that you'd normally have to do yourself when working with Spring. And we'll stop at a few scenic points along the way to see how Roo accomplishes some of its magic.

In recent years, rapid application development frameworks such as Rails and Grails have earned a lot of attending. By employing code generation, convention-over-configuration, and the dynamic capabilities of their core languages (Ruby and Groovy) to offer unparalleled productivity, helping get projects off the ground quickly.

As awesome as these frameworks are, they do have one negative mark against them. Although developers love working with them, convincing the “boss” to build mission-critical applications in a relatively new development style based can be difficult. The mere mention of a word like “Groovy” conjures up images of tie-dye shirts and VW vans. Risk-averse project managers often think that free love may have been a big thing in the 70s, but it has no place in serious business.

If psychedelic frameworks are a tough-sell in your organization, then you can still feel much of the same productivity gains while developing Spring applications. Spring Roo mixes Spring and Java with a little code generation and a dash of compile-time AspectJ to achive a rapid development environment that resembles Rails and Grails. But instead of producing Ruby/Rails or Groovy/Grails code that may make your manager twitch, Roo produces Java-based projects that use the Spring Framework–which is already accepted in many organizations.

Spring Roo Workshop

8:30 PM MDT

In this hands-on workshop, we'll work together developing a Spring application using Spring Roo.

To fully benefit from the workshop, you should bring your computer loaded with Java 6 and Spring Roo 1.1.0 and SpringSource ToolSuite 2.5.1.

Spring MVC Workshop

9:00 AM MDT

For as long as there has been a Spring Framework, there has been Spring MVC, a web framework built around the principals of Spring. Although it was originally designed around a deep hierarchy of controller classes and focused on HTML-oriented views, Spring MVC has evolved in the past few years to embrace an annotation-oriented model and RESTful web development.

In this workshop, we'll use Spring MVC to build the web front-end of an application. We'll start with the essentials and work our way up to try out the latest Spring MVC features in Spring 3.1. We'll explore the following Spring MVC topics:

  • Spring MVC essentials (request mapping, controllers, and views)
  • Field formatting and validation
  • Spring's JSP tag libraries
  • Handling file uploads
  • Content negotiation and non-HTML views
  • Request and response body conversion
  • Advanced request mapping
  • And much more!

Whether you're a Spring newbie or a long-time Spring veteran, this is your chance to get a hands-on experience with everything Spring MVC can do.

IMPORTANT!!! PRE-WORKSHOP SETUP INSTRUCTIONS!!!

In order to ensure a successful workshop, it is imperative that you arrive with the following installed on your computer:

  • Java SDK 1.5 or higher (not the JRE!)
  • Maven 3.0.3 (or newer): http://maven.apache.org/
  • SpringSource Tool Suite (2.8.0 or higher): http://www.springsource.com/developer/sts

Also, before arriving, it will save time if you have already verified this setup. As part of the verification, perform the following steps:

  1. Start SpringSource ToolSuite
  2. Create a new Spring MVC template project (File->New->Spring Template Project, then select “Spring MVC Project”). Name the project “SpringMVC”. (Note that if this is the first time you've created a Spring MVC template project, it may take some time to download the templates.)
  3. Once the project has been created and has had a chance to build in the IDE, drag the project into the tcServer instance (“VMWare vFabric tc Server Developer Edition v2.6”) in the “Servers” tab.
  4. Start tcServer
  5. After the server starts fully, point your browser to http://localhost:8080/SpringMVC and verify that you are greeted with a “Hello World!” message along with the current time.

We will not have time during the workshop to setup your environment, so please arrive having performed these setup steps. If you need any help getting started, feel free to email craig-mvcws@habuma.com and I'll do my best to help out.

Spring MVC Workshop

11:00 AM MDT

For as long as there has been a Spring Framework, there has been Spring MVC, a web framework built around the principals of Spring. Although it was originally designed around a deep hierarchy of controller classes and focused on HTML-oriented views, Spring MVC has evolved in the past few years to embrace an annotation-oriented model and RESTful web development.

In this workshop, we'll use Spring MVC to build the web front-end of an application. We'll start with the essentials and work our way up to try out the latest Spring MVC features in Spring 3.1. We'll explore the following Spring MVC topics:

  • Spring MVC essentials (request mapping, controllers, and views)
  • Field formatting and validation
  • Spring's JSP tag libraries
  • Handling file uploads
  • Content negotiation and non-HTML views
  • Request and response body conversion
  • Advanced request mapping
  • And much more!

Whether you're a Spring newbie or a long-time Spring veteran, this is your chance to get a hands-on experience with everything Spring MVC can do.

IMPORTANT!!! PRE-WORKSHOP SETUP INSTRUCTIONS!!!

In order to ensure a successful workshop, it is imperative that you arrive with the following installed on your computer:

  • Java SDK 1.5 or higher (not the JRE!)
  • Maven 3.0.3 (or newer): http://maven.apache.org/
  • SpringSource Tool Suite (2.8.0 or higher): http://www.springsource.com/developer/sts

Also, before arriving, it will save time if you have already verified this setup. As part of the verification, perform the following steps:

  1. Start SpringSource ToolSuite
  2. Create a new Spring MVC template project (File->New->Spring Template Project, then select “Spring MVC Project”). Name the project “SpringMVC”. (Note that if this is the first time you've created a Spring MVC template project, it may take some time to download the templates.)
  3. Once the project has been created and has had a chance to build in the IDE, drag the project into the tcServer instance (“VMWare vFabric tc Server Developer Edition v2.6”) in the “Servers” tab.
  4. Start tcServer
  5. After the server starts fully, point your browser to http://localhost:8080/SpringMVC and verify that you are greeted with a “Hello World!” message along with the current time.

We will not have time during the workshop to setup your environment, so please arrive having performed these setup steps. If you need any help getting started, feel free to email craig-mvcws@habuma.com and I'll do my best to help out.

Securing Spring

5:00 PM MDT

In this session, I'll show you how to secure your Spring application with Spring Security 3.2. You'll see how to declare both request-oriented and method-oriented security constraints. And you'll see how SpEL can make simple work of expressing complex security rules.

Although we may invite guests into our homes and give someone a ride in our car, we locks and alarms on our homes and our cars to keep uninvited and malicious visitors out. Similarly, we allow people to use the applications that we develop, but we probably want to control the access that they have.

Security is an important aspect of any application. And while we could program security rules into the web controllers and methods in our application, we'd find ourselves cluttering our business logic with repetitive security code. Security is a cross-cutting concern–begging to be handled with aspect-oriented techniques.

Spring Security is an authentication and access-control framework based on Spring that provides security aspects. With Spring Security, you can declare who is allowed to access your application and what they're allowed to see, keeping your application logic focused and uncluttered with security details.

Building Social Web Applications

9:00 AM MDT

Do you know what your application's users are doing when they're not using your application? Odds are good that they're spending time on Facebook, Twitter, or any of the other social network sites that are so prevalent today. If only your application could somehow go with them into those sites, adding value to their experience in both places.

In this session, you will learn how to build rich web applications that interact with the major social networks. We will highlight the open source technology available for simplifying social media integration, and will show you how to add social features to your own 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.