Quickstart: Create a Java Spring app with Azure App Configuration

In this quickstart, you incorporate Azure App Configuration into a Java Spring app to centralize storage and management of application settings separate from your code.

Prerequisites

Create an App Configuration store

  1. To create a new App Configuration store, sign in to the Azure portal. In the upper-left corner of the home page, select Create a resource. In the Search the Marketplace box, enter App Configuration and select Enter.

    Search for App Configuration

  2. Select App Configuration from the search results, and then select Create.

    Select Create

  3. On the App Configuration > Create pane, enter the following settings:

    Setting Suggested value Description
    Resource name Globally unique name Enter a unique resource name to use for the App Configuration store resource. The name must be a string between 5 and 50 characters and contain only numbers, letters, and the - character. The name can't start or end with the - character.
    Subscription Your subscription Select the Azure subscription that you want to use to test App Configuration. If your account has only one subscription, it's automatically selected and the Subscription list isn't displayed.
    Resource group AppConfigTestResources Select or create a resource group for your App Configuration store resource. This group is useful for organizing multiple resources that you might want to delete at the same time by deleting the resource group. For more information, see Use resource groups to manage your Azure resources.
    Location Central US Use Location to specify the geographic location in which your app configuration store is hosted. For the best performance, create the resource in the same region as other components of your application.
    Pricing tier Free Select the desired pricing tier. For more details, please see the App Configuration pricing page.

    Create an App Configuration store resource

  4. Select Create. The deployment might take a few minutes.

  5. After the deployment finishes, select Settings > Access Keys. Make a note of the primary read-only key connection string. You'll use this connection string later to configure your application to communicate with the App Configuration store that you created.

  1. Select Configuration Explorer > + Create > Key-value to add the following key-value pairs:

    Key Value
    /application/config.message Hello

    Leave Label and Content Type empty for now.

  2. Select Apply.

Create a Spring Boot app

Use the Spring Initializr to create a new Spring Boot project.

  1. Browse to https://start.spring.io/.

  2. Specify the following options:

    • Generate a Maven project with Java.
    • Specify a Spring Boot version that's equal to or greater than 2.0.
    • Specify the Group and Artifact names for your application.
    • Add the Spring Web dependency.
  3. After you specify the previous options, select Generate Project. When prompted, download the project to a path on your local computer.

Connect to an App Configuration store

  1. After you extract the files on your local system, your simple Spring Boot application is ready for editing. Locate the pom.xml file in the root directory of your app.

  2. Open the pom.xml file in a text editor, and add the Spring Cloud Azure Config starter to the list of <dependencies>:

    Spring Cloud 1.1.x

    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>spring-cloud-azure-appconfiguration-config</artifactId>
        <version>1.1.2</version>
    </dependency>
    

    Spring Cloud 1.2.x

    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>spring-cloud-azure-appconfiguration-config</artifactId>
        <version>1.2.2</version>
    </dependency>
    
  3. Create a new Java file named MessageProperties.java in the package directory of your app. Add the following lines:

    package com.example.demo;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    
    @ConfigurationProperties(prefix = "config")
    public class MessageProperties {
        private String message;
    
        public String getMessage() {
            return message;
        }
    
        public void setMessage(String message) {
            this.message = message;
        }
    }
    
  4. Create a new Java file named HelloController.java in the package directory of your app. Add the following lines:

    package com.example.demo;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class HelloController {
        private final MessageProperties properties;
    
        public HelloController(MessageProperties properties) {
            this.properties = properties;
        }
    
        @GetMapping
        public String getMessage() {
            return "Message: " + properties.getMessage();
        }
    }
    
  5. Open the main application Java file, and add @EnableConfigurationProperties to enable this feature.

    import org.springframework.boot.context.properties.EnableConfigurationProperties;
    
    @SpringBootApplication
    @EnableConfigurationProperties(MessageProperties.class)
    public class DemoApplication {
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    }
    
  6. Create a new file named bootstrap.properties under the resources directory of your app, and add the following lines to the file. Replace the sample values with the appropriate properties for your App Configuration store.

    spring.cloud.azure.appconfiguration.stores[0].name= ${APP_CONFIGURATION_CONNECTION_STRING}
    
  7. Set an environment variable named APP_CONFIGURATION_CONNECTION_STRING, and set it to the access key to your App Configuration store. At the command line, run the following command and restart the command prompt to allow the change to take effect:

        setx APP_CONFIGURATION_CONNECTION_STRING "connection-string-of-your-app-configuration-store"
    

    If you use Windows PowerShell, run the following command:

        $Env:APP_CONFIGURATION_CONNECTION_STRING = "connection-string-of-your-app-configuration-store"
    

    If you use macOS or Linux, run the following command:

        export APP_CONFIGURATION_CONNECTION_STRING='connection-string-of-your-app-configuration-store'
    

Build and run the app locally

  1. Build your Spring Boot application with Maven and run it, for example:

    mvn clean package
    mvn spring-boot:run
    
  2. After your application is running, use curl to test your application, for example:

    curl -X GET http://localhost:8080/
    

    You see the message that you entered in the App Configuration store.

Clean up resources

If you plan to continue to the next tutorial, keep the resources you created in this quickstart for that you can reuse them.

If you're finished with the quickstart sample application, delete the Azure resources you created in this quickstart to avoid charges.

Important

Deleting a resource group is irreversible. The resource group and all the resources in it are permanently deleted. Make sure that you don't accidentally delete the wrong resource group or resources. If you created the resources for hosting this sample inside a resource group that contains resources you want to keep, delete each resource individually from its respective pane instead of deleting the resource group.

  1. Sign in to the Azure portal, and select Resource groups.
  2. In the Filter by name box, enter the name of your resource group.
  3. In the result list, select the resource group, and either right-click the row or use the ellipsis (...) button to open the context menu.
  4. Select Delete resource group.
  5. You're asked to confirm the deletion of the resource group. Enter the name of your resource group to confirm, and select Delete.

After a few moments, the resource group and all its resources are deleted.

Next steps

In this quickstart, you created a new App Configuration store and used it with a Java Spring app. For more information, see Spring on Azure. To learn how to enable your Java Spring app to dynamically refresh configuration settings, continue to the next tutorial.