Salta al contenuto principale

Ottieni Valori Definiti nel File di Proprietà in Spring

Spring Properties Basics
Autore
Harpal Singh
Software Engineer
Tradotto da
Namastecode
Indice dei contenuti

1. Introduzione

In questo tutorial, impareremo come accedere ai valori definiti in un file di proprietà in un’applicazione Spring Boot.

Per prima cosa, definiremo come vengono configurate le proprietà in un’applicazione Spring Boot. Poi, esamineremo come queste proprietà possono essere lette durante l’esecuzione nell’applicazione.

Avere un file di proprietà è il modo più comune per esternalizzare la configurazione di un’applicazione Spring Boot. Pertanto, è un buon modo per noi per personalizzare il comportamento dell’applicazione senza modificare il codice.

Iniziamo.

2. Definire le Proprietà in Spring Boot

Prima di tutto, dobbiamo definire alcune proprietà. Spring utilizza una convenzione per creare un file chiamato application.properties all’interno della cartella delle risorse dove scriviamo tutte le configurazioni. Se stiamo utilizzando il formato YAML, il file si chiama application.yml.

Ora, supponiamo di voler definire un limite di richiesta per le richieste degli utenti. All’interno del nostro file delle proprietà, possiamo definire una proprietà chiamata userRequest.rate_limit:

userRequest.rate_limit=20

Qui, abbiamo definito un limite di frequenza di 20 richieste al minuto per la richiesta dell’utente. Vediamo come possiamo leggere questa proprietà nella nostra applicazione.

3. Accesso alle Proprietà all’interno del Servizio Spring

Ora abbiamo un valore per una proprietà personalizzata che possiamo leggere. A questo scopo, possiamo utilizzare l’annotazione @Value all’interno di un servizio Spring Boot:

@Service
public class UserRequestService {
    
    @Value("${userRequest.rate_limit}")
    private String userRequestRateLimit;
    
    // ...
}

In breve, l’annotazione @Value viene utilizzata per iniettare il valore di una proprietà in un campo in Spring.

Inoltre, possiamo anche utilizzare l’annotazione @Value per iniettare proprietà nei parametri del costruttore o nei parametri del metodo:

@Service
public class UserRequestService {
    
    private final String userRequestRateLimit;
    
    @Autowired
    public UserRequestService(@Value("${userRequest.rate_limit}") String userRequestRateLimit) {
        this.userRequestRateLimit = userRequestRateLimit;
    }
    
    // ...
}

4. Impostazione dei Valori Predefiniti

A volte, potremmo non voler imporre che la proprietà sia definita dall’utente. In questi casi, vogliamo che la proprietà abbia un valore predefinito. A tal fine, possiamo utilizzare il formato ${property:defaultValue} per definire il valore predefinito:

@Value("${userRequest.rate_limit:10}")
private String userRequestRateLimit;

In questo caso, non dovremo impostare un valore all’interno del file delle proprietà. Se la proprietà non è definita, verrà utilizzato il valore predefinito di 10.

5. Conclusione

In questo breve tutorial, abbiamo imparato come accedere ai valori definiti in un file di proprietà in un’applicazione Spring Boot. Prima, abbiamo definito una proprietà personalizzata e poi abbiamo utilizzato l’annotazione @Value per iniettare i valori della proprietà nel nostro servizio Spring. Infine, abbiamo visto come impostare valori predefiniti per le proprietà.

Related

Configurare la Porta per un'Applicazione Spring Boot
Spring Basics
Restituire errori HTTP 4XX in un'applicazione Spring
Spring HTTP
Configurare un Client Web Java per Richieste HTTPS
WebClient HTTPS Spring