Java Spring Boot (Part 7)
Neil Haddley โข September 20, 2025
Hosting a Spring Boot application on Azure Spring Apps, from creating the service to scaling it, and the news that the service is being retired
I used Azure Spring Apps to host a Java Web Application in Microsoft Azure
What the video says
The Microsoft Build session, with Adib Saikali and Asir Selvasingh, describes what the Azure Spring Apps service does for me:
- It is fully managed, and it runs on Kubernetes. Each service instance has two dedicated Kubernetes clusters that Azure Spring Apps manages and hides from me. One cluster runs the service components, and the other runs my applications.
- There are three steps. I create a service instance, I create an app inside it, and I deploy the application binaries.
- Monitoring and security come with it. Logs and metrics go to Azure Monitor, and an application can use a managed identity to reach other Azure services without a password.
- Operating it is simple. The video shows scaling up, scaling out, and zero-downtime deployments, and says that Microsoft and VMware jointly operate and support the service.
- The demo uses the Enterprise tier. I chose the entry level, so some of what the presenters show, such as application accelerators, is not in my screenshots.
Deploy the sample and look around
Under the hood: What the video does from the command line
Instead of the portal, the presenter uses the Azure CLI. The az spring app create command makes the app. It takes the amount of CPU and memory, an assign-endpoint flag that gives the app a public URL, and a system-assigned flag that gives it a managed identity. The az spring app deploy command takes the app name and the path of the compiled jar file. In the Enterprise plan demo, the presenter does not write a Dockerfile, because the service builds the container from the code.
The presenter says that a production deployment would normally turn the public endpoint off and send requests to the app from a load balancer, over a private URL.
GreetingController.java
The sample application is small. Its GreetingController is a Spring MVC controller with one method that answers requests to / with the text Hello World. I ran the same sample on my own machine, from the project's complete folder.
Under the hood: What ./mvnw spring-boot:run does
The mvnw script is the Maven wrapper that comes with a Spring Boot project, so I do not need to install Maven first. The spring-boot:run goal compiles the application and starts it with an embedded Tomcat server. That is why the log says Tomcat initialized with port 8080: the application brings its own web server, and nothing else needs to be installed to run it.


















