Spring Book
  • ❓About this book
  • Tutorials
    • JWT Authentication and Role-Based Authorization with Java Spring Boot
  • 🍲Recipes
    • Handling Exceptions in RESTful User Responses
    • Global REST Error Responses via @ControllerAdvice
    • Proper vs. Improper Way to Implement CRUD in RESTful Services
    • Referencing Values from Properties File in Components
    • Disabling OAuth2 Security for Integration Tests with @TestConfiguration
    • Custom Acutator Endpoints
    • Simplifying Spring Services with Lombok
    • Logging Entities in Spring with Lombok
    • WebScrapping on a Schedule
  • ☕Partner with Katyella for Your Development Needs
Powered by GitBook

Need US based Java Developers

  • Visit Katyella

Katyella LLC http://katyella.com

On this page
Export as PDF
  1. Recipes

Referencing Values from Properties File in Components

  1. Properties File (application.properties)

# Define properties
bookstore.name=My Awesome Bookstore
bookstore.location=Main Street, Springfield
  1. Spring Component

@Component
public class BookstoreProperties {

    @Value("${bookstore.name}")
    private String name;

    @Value("${bookstore.location}")
    private String location;

    // getters and setters

    public void printBookstoreDetails() {
        System.out.println("Bookstore Name: " + name);
        System.out.println("Bookstore Location: " + location);
    }
}

In Spring Boot applications, you can easily externalize configuration and access properties in your components. The above code demonstrates how you can define properties in the application.properties file and inject them into your Spring components using the @Value annotation.

Explanation:

  • Properties File (application.properties):

    • Contains key-value pairs defining properties and their values.

    • bookstore.name and bookstore.location are the properties used in this example.

  • Spring Component (BookstoreProperties):

    • Annotated with @Component, making it a Spring-managed bean.

    • Uses the @Value annotation to inject property values from the application.properties file.

    • The syntax ${property.name} within @Value specifies the property to be injected.

    • printBookstoreDetails is a method to display the injected values, demonstrating that the values have been successfully injected.

Benefits:

  • Decoupling of Configuration and Code: Enables changing the application's behavior without code changes by modifying the properties file.

  • Ease of Maintenance: Centralizes configuration management, simplifying changes and management.

  • Flexibility for Different Environments: Allows for different configurations in development, testing, and production environments without changing the codebase.

By leveraging the @Value annotation in Spring Boot, you can maintain clean separation between your configuration and code, making your application more adaptable and easier to manage across different environments.

PreviousProper vs. Improper Way to Implement CRUD in RESTful ServicesNextDisabling OAuth2 Security for Integration Tests with @TestConfiguration

Last updated 1 year ago

🍲