Ralph's Blog about this and that (RSS | Atom)

Consume Protocol Buffer messages with Ionic

Published: 14. January 2017  •  Updated: 1. December 2018  •  ionic, spring, java, javascript

Form validation with Angular and Spring Boot

Published: 26. January 2017  •  Updated: 4. December 2018  •  angular, ionic, spring, java, javascript

Example of form validation in an Ionic Angular application. How to create custom synchronous and asynchronous validators and how to validate data on the server with the Jakarta Bean Validation framework.

Produce RSS and Atom feeds with Spring framework

Published: 24. January 2017  •  Updated: 17. March 2026  •  spring, java

How to create RSS and Atom feeds with the Spring Framework and the ROME library

Protocol Buffers with Spring Integration

Published: 8. January 2017  •  Updated: 17. March 2026  •  java, spring

An introduction to Protocol Buffers, a binary data format developed by Google, and how to use it with Spring Integration

JWT Authentication with Ionic/Angular and Spring Boot

Published: 5. February 2017  •  Updated: 17. March 2026  •  ionic, spring, java, javascript

How to implement a JWT authentication system with Ionic/Angular and Spring Boot.

Server-Sent Events with Spring

Published: 5. March 2017  •  Updated: 17. March 2026  •  java, spring

What are Server-Sent Events and how can you send them from a Spring Boot application

Spring Boot and Ionic application development with OpenAPI

Published: 21. September 2017  •  Updated: 4. December 2018  •  spring, java, javascript, ionic

In this blog, we create REST services in Spring Boot and consume them in an Ionic app. We use the OpenAPI specification for generating API documentation and the client TypeScript code.

Dynamically loading position data with Ionic and Spring Boot

Published: 5. November 2017  •  Updated: 3. December 2018  •  ionic, java, spring, javascript

In this blog post we create an Ionic app that dynamically requests location data points from a Spring Boot server and displays them on an OpenStreetMap map. The data points are stored in a MongoDB database, and we take advantage of the geospatial query support to read the data points only for a certain area.

Adding speech recognition to an Ionic App

Published: 18. December 2017  •  Updated: 17. March 2026  •  ionic, javascript, java, spring

In this blog post I present two different ways to integrate speech recognition functionality into an Ionic app: the Web Speech API and RecordRTC together with the Google Cloud Speech API.

Sending browser push messages from Spring Boot with Firebase Cloud Messaging

Published: 9. January 2018  •  Updated: 21. March 2026  •  java, javascript, pwa, spring

This blog post shows how to send browser push messages from a Spring Boot application with Firebase Cloud Messaging. The client uses a service worker, IndexedDB, and the current FCM token flow for web apps.

A closer look at the Background Sync API

Published: 26. June 2018  •  pwa, javascript, java, spring, ionic

This blog post takes a closer look at the Background Sync API, shows how to use it as a progressive enhancement, and presents an example that synchronizes data between an Ionic web application and a Spring Boot server application.

Google Cloud Vision and Storage example with Ionic and Spring Boot

Published: 11. December 2018  •  java, spring, ionic, javascript

This post shows how to upload images from an Ionic web application directly to Google Cloud Storage with V4 signed URLs and analyze them with Google Cloud Vision from a Spring Boot back end.

Getting started with jOOQ, Flyway, and Spring Boot

Published: 31. January 2019  •  java, spring

In this blog post, we are going to set up a Spring Boot application with jOOQ and Flyway

Stateless Authentication with Spring Security

Published: 15. May 2019  •  java, spring, ionic

This post implements a stateless authentication system with Spring Security, Spring Boot, and an Angular/Ionic client

Password auto-login with the Credential Management API

Published: 13. June 2019  •  java, javascript, spring, ionic

How to create a frictionless password auto-login experience with the Credential Management API.

Exposing build information of Spring Boot and Angular applications

Published: 12. June 2019  •  java, spring, javascript

How to expose version numbers, build timestamps, and Git metadata in Spring Boot and Angular applications

Spring Security second-factor authentication with TOTP

Published: 21. June 2019  •  Updated: 5. April 2020  •  java, spring

In this blog post, you learn how to build an authentication system with Spring Security that uses username/password and TOTP (Time-based One-Time Password) as a second factor

Reliable file uploads over HTTP with tus.io

Published: 11. June 2019  •  Updated: 19. March 2026  •  java, javascript, spring, ionic

How to integrate tus.io implementations into JavaScript and Java applications to create reliable and resumable file uploads over HTTP.

Uploading pictures from Capacitor app to Spring Boot

Published: 11. June 2019  •  Updated: 19. March 2026  •  java, spring, javascript, ionic, capacitor

How to take pictures with the Capacitor camera plugin and upload them to a Spring Boot application with Angular's HttpClient and tus.io.

Rate limiting Spring MVC endpoints with bucket4j

Published: 7. August 2019  •  Updated: 20. March 2026  •  java, spring

How to rate limit Spring MVC HTTP endpoints with bucket4j

Creating a passwordless sign-in with WebAuthn, Spring, and Ionic/Angular

Published: 25. August 2019  •  Updated: 20. March 2026  •  javascript, java, spring, ionic

In this blog post, we build a passwordless sign-in flow with WebAuthn, an Ionic / Angular front end, and a Spring Boot back end secured with Spring Security.

Push Notifications with Capacitor and Java

Published: 3. April 2020  •  Updated: 20. June 2021  •  ionic, spring, javascript, capacitor, java

In this blog post, we take a closer look at how to receive push notifications with Capacitor and how to send them from a Spring Boot application.

Upgrade password hashes with Spring Security

Published: 4. May 2020  •  Updated: 21. May 2021  •  java, spring

A closer look at Spring Security's support for upgrading password hashes

Tool/Function Calling with Spring AI

Published: 29. January 2025  •  java, spring, llm

A look at Spring AI's support for Tool/Function calling. How to write your own tools and integrate them into your Spring AI application.

ShedLock - Prevent Concurrent Execution of Scheduled Methods in Spring Boot

Published: 16. July 2025  •  java, spring

How to use ShedLock to prevent concurrent execution of scheduled methods in a Spring Boot application.

RAG with Spring AI

Published: 23. July 2025  •  spring, llm

Implementing a traditional RAG (Retrieval Augmented Generation) system using Spring AI.

Cache support in Spring Boot

Published: 28. July 2025  •  java, spring

This post takes a look at the caching support in Spring Boot, including setup, pitfalls, key generation, and advanced configuration options.

mTLS with Spring Boot and Spring Security

Published: 13. August 2025  •  java, spring

Implementing Mutual TLS (mTLS) with Spring Boot and Spring Security for secure client-server communication.

A look at Spring Expression Language (SpEL)

Published: 6. March 2026  •  java, spring

Spring Expression Language (SpEL) is an expression language from the Spring ecosystem that can be used in any Java application. In this article, we will explore the features of SpEL and how to use it as a base for a simple rule engine.

Integrate gRPC with Spring Boot

Published: 6. March 2026  •  java, spring

Learn how to integrate gRPC into a Spring Boot application using the Spring gRPC project.

OAuth 2.0 authorization code flow with PKCE in a Spring Security BFF

Published: 16. April 2026  •  java, spring

In this blog post, we are going to look at a complete BFF (Backend-for-Frontend) implementation with Spring Security that uses the OAuth 2.0 authorization code flow with PKCE to log users in, maintain a server-side session, and serve protected data.

Spring 7 resilience features

Published: 7. April 2026  •  spring

Spring Framework 7 adds two resilience features directly to the core framework: retry and concurrency throttling. In this blog post, we will explore both features.