Maison > Java > javaDidacticiel > le corps du texte

Comment lire le fichier de configuration des propriétés personnalisées sous SpringBoot

WBOY
Libérer: 2023-05-13 22:43:11
avant
2343 Les gens l'ont consulté

1. Créez un nouveau fichier .properties dans la ressource

Créez un nouveau dossier de configuration dans le répertoire des ressources, puis créez un nouveau fichier .properties et placez-le dans le dossier Down. Comme le montre la figure remote.properties

Comment lire le fichier de configuration des propriétés personnalisées sous SpringBoot

2. Écrivez le fichier de configuration

remote.uploadFilesUrl=/resource/files/
remote.uploadPicUrl=/resource/pic/
Copier après la connexion
# 🎜🎜#

3. Créez une nouvelle classe de configuration RemoteProperties.java

@Configuration
@ConfigurationProperties(prefix = "remote", ignoreUnknownFields = false)
@PropertySource("classpath:config/remote.properties")
@Data
@Component
public class RemoteProperties {
  private String uploadFilesUrl;
  private String uploadPicUrl;
}
Copier après la connexion

@Configuration indique qu'il s'agit d'une classe de configuration# 🎜🎜# @ConfigurationProperties(prefix = "remote", ignoreUnknownFields = false) Cette annotation est utilisée pour lier des propriétés. prefix est utilisé pour sélectionner le préfixe de l'attribut, qui est "remote" dans le fichier remote.properties. ignoreUnknownFields est utilisé pour indiquer à SpringBoot de lever une exception lorsqu'un attribut ne peut pas correspondre au champ déclaré.

@PropertySource("classpath:config/remote.properties") Chemin du fichier de configuration
@Data Il s'agit d'une annotation lombok, utilisée pour générer des méthodes getter&setter
@Composant identifié comme Bean

4. Comment utiliser ?

Annotate EnableConfigurationProperties(RemoteProperties.class)

sur la table de la classe où vous souhaitez utiliser la méthode du fichier de configuration et injecter automatiquement

@Autowired
RemoteProperties remoteProperties;
Copier après la connexion

dans la méthode Vous pouvez obtenir le contenu de configuration en utilisant remoteProperties.getUploadFilesUrl().
@EnableConfigurationProperties(RemoteProperties.class)
@RestController
public class TestService{
  @Autowired
  RemoteProperties remoteProperties;

  public void test(){
    String str = remoteProperties.getUploadFilesUrl();
    System.out.println(str);
  }
}
Copier après la connexion

Ici str est le "/resource/files/" dans le fichier de configuration.

PS : Jetons un coup d'œil aux deux façons de lire le fichier de configuration dans Spring-boot

Ceux qui ont entendu parler du Technologie spring-Boot , vous devez connaître le fichier de configuration principal application.properties de Spring-Boot. Bien sûr, vous pouvez également personnaliser les informations du fichier de configuration via des annotations.

Comment Spring-Boot lit le fichier de configuration :

1 Lisez le contenu des informations du fichier de configuration principal application.properties

#🎜🎜. # Le fichier de configuration principal fait référence au fichier de configuration application.properties ou application.yml dans le répertoire racine des ressources. Il existe deux façons de lire ces deux fichiers de configuration, toutes deux relativement simples.

Le contenu du fichier de configuration principal application.properties est le suivant :

test.msg=Hello World SpringBoot
Copier après la connexion

Méthode 1 : Utiliser la méthode @Value (couramment utilisée)

package Solin.controller; 
import org.springframework.beans.factory.annotation.Value; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 
@RestController 
public class WebController { 
  @Value("${test.msg}") 
  private String msg; 
  @RequestMapping("/index1")  
  public String index1(){ 
    return "方式一:"+msg; 
  } 
}
Copier après la connexion
# 🎜🎜#Remarque : Le ${} dans @Value contient le nom de la clé dans le fichier de configuration principal. L'ajout de @RestController à la classe Controller signifie que toutes les vues de cette classe seront affichées en JSON, de la même manière que l'ajout de @ResponseBody à la méthode d'affichage. Lors de la visite : http://localhost:8088/index1, j'obtiens : "Méthode 1 : Hello World SpringBoot"

Méthode 2 : Utiliser la méthode Environnement
#🎜 🎜#

package Solin.controller; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.beans.factory.annotation.Value; 
import org.springframework.core.env.Environment; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 
@RestController 
public class WebController { 
  @Autowired 
  private Environment env; 
   
  @RequestMapping("/index2")  
  public String index2(){ 
    return "方式二:"+env.getProperty("test.msg"); 
  } 
}
Copier après la connexion
Remarque : Cette méthode est complétée par l'injection de dépendances Evnironment. Ajoutez l'annotation @Autowired à la variable membre créée private Environment env pour terminer l'injection de dépendances, puis utilisez env.getProperty("key name" ) La valeur correspondante peut être lue.

Lors de l'accès à : http://localhost:8088/index2, nous obtenons : "Méthode 2 : Hello World SpringBoot"

2. Lisez les informations du fichier de configuration personnalisé, par exemple exemple : author.properties


Afin de ne pas détruire l'écologie d'origine du fichier principal, mais également d'avoir des informations de configuration personnalisées, dans des circonstances normales, un fichier de configuration personnalisé sera sélectionné pour mettre ces informations personnalisées. , créez ici le contenu du fichier de configuration author.properties

resources/author.properties dans le répertoire des ressources comme suit :

author.name=Solin 
author.age=22
Copier après la connexion
Créez la classe d'entité pour configuration de gestion :

package Solin.controller; 
 
import org.springframework.boot.context.properties.ConfigurationProperties; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.stereotype.Component; 
 
//加上注释@Component,可以直接在其他地方使用@Autowired来创建其实例对象 
@Component 
@ConfigurationProperties(prefix = "author",locations = "classpath:author.properties")   
public class MyWebConfig{ 
  private String name; 
  private int age; 
  public String getName() { 
    return name; 
  } 
  public void setName(String name) { 
    this.name = name; 
  } 
  public int getAge() { 
    return age; 
  } 
  public void setAge(int age) { 
    this.age = age; 
  } 
}
Copier après la connexion
# 🎜🎜#Note :

Il y a deux propriétés dans l'annotation @ConfigurationProperties :

#🎜 🎜#locations : Spécifiez l'emplacement du fichier de configuration Position prefix : Spécifiez le préfixe du nom de clé dans le fichier de configuration (tous les noms de clés dans mon fichier de configuration commencent par auteur.)

Utilisez @Component pour permettre à la classe d'être utilisée ailleurs. Utilisé par les dépendances, c'est-à-dire en utilisant l'annotation @Autowired pour créer des instances.


Create Test Controller

package Solin.controller; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Controller; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.ResponseBody; 
@Controller  
public class ConfigController { 
  @Autowired 
  private MyWebConfig conf; 
   
  @RequestMapping("/test")  
  public @ResponseBody String test() { 
    return "Name:"+conf.getName()+"---"+"Age:"+conf.getAge();  
  } 
}
Copier après la connexion

Remarque : Puisque le @Component est annoté sur la classe Conf, vous pouvez utiliser @Autowired directement ici pour créer son objet instance.

Lors de l'accès à : http://localhost:8088/test, j'ai obtenu : "Nom : Solin --- Âge : 22"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal