Maison > Java > javaDidacticiel > le corps du texte

Comment personnaliser Starter dans Springboot

PHPz
Libérer: 2023-05-28 15:25:46
avant
1668 Les gens l'ont consulté

Règles de dénomination personnalisées du Starter

Faites attention aux règles de dénomination de l'artefactId. Le Starter officiel de Spring est généralement nommé spring-boot-starter-{name}, comme spring-boot-starter-web, le responsable de Spring recommande ce Starter non officiel. la dénomination doit suivre le format de {name}-spring-boot-starter, tel que mybatis-spring-boot-starter. L'artefactId du projet créé ici est helloworld-spring-boot-starter

Développer les étapes de démarrage

  • Créer un projet Starter

  • Définir la classe de configuration (Propriétés) requise par Starter

  • Write Classe de configuration automatique

  • Écrivez le fichier spring.factories pour charger la classe de configuration automatique

  • Écrivez le fichier d'invite de configuration spring-configuration-metadata.json (pas nécessaire)

Processus spécifique

Créez la classe de configuration

@ConfigurationProperties pour définir le préfixe de la configuration

@EnableConfigurationProperties(InfluxdbProperties.class)
@ConfigurationProperties(prefix = "spring.influxdb")
public class InfluxdbProperties {
 private String username;
 public String getDatabase() {
   return database;
 }
 public void setDatabase(String database) {
   this.database = database;
 }
}
Copier après la connexion

Écrivez la classe de configuration automatique

  • @EnableConfigurationProperties pour configurer la classe de propriétés dépendantes

  • @ConditionalOnProperty pour configurer les règles de chargement de Configuration

    • À quelles propriétés la valeur fait-elle référence ? Le champ

    • havingValue fait référence au chargement de la configuration lors de la configuration de la valeur

    • matchIfMissing fait référence à la valeur par défaut lorsque le champ de valeur configuré n'est pas configuré

  • @Bean configure le bean injecté automatiquement

  • Les annotations de dépendance conditionnelle courantes uniques à Springboot incluent :

    • @ConditionalOnBean, qui instanciera un bean uniquement lorsqu'il existe dans le contexte actuel.

    • @ConditionalOnClass, ce Bean sera instancié uniquement lorsqu'une classe est sur le chemin de classe.

    • @ConditionalOnExpression, ce Bean sera instancié uniquement lorsque l'expression est vraie.

    • @ConditionalOnMissingBean, ce bean sera instancié uniquement lorsqu'un bean n'existe pas dans le contexte actuel.

    • @ConditionalOnMissingClass, ce Bean ne sera instancié que lorsqu'une classe n'existe pas sur le chemin de classe.

    • @ConditionalOnNotWebApplication, ce Bean sera instancié uniquement lorsqu'il ne s'agit pas d'une application web.

    • @AutoConfigureAfter, instanciez un bean une fois sa configuration automatique terminée.

    • @AutoConfigureBefore, instanciez un bean avant qu'il ne termine la configuration automatique.

@Configuration
@Order(1)
@EnableConfigurationProperties(InfluxdbProperties.class)
@ConditionalOnClass(InfluxdbProperties.class)
@ConditionalOnProperty(prefix = "spring.influxdb", value = "use-influxdb", havingValue="true" ,matchIfMissing = false)
public class InfluxdbAutoConfiguration {
private String scanEntitySuffix = "Entity.class";

@Bean
@ConditionalOnMissingBean(AiInfluxdbTemplate.class)
@Order(Ordered.HIGHEST_PRECEDENCE)
public AiInfluxdbTemplate AiInfluxdbTemplate(InfluxdbProperties influxdbProperties){
  return new AiInfluxdbTemplate(influxdbProperties);
}
}
Copier après la connexion

Écrivez le fichier spring.factories

Spring Boot analysera les packages au même niveau que la classe de démarrage par défaut. Si nos classes Starter et startup ne sont pas sous le même package principal, nous devons configurer le. fichier spring.factories pour prendre effet

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.ai.base.boot.influxdb.InfluxdbAutoConfiguration
Copier après la connexion
.

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