Table des matières
Springboot lit le fichier pro et injecte des variables statiques statiques
springboot static property injection Résolvez
La première façon
La deuxième façon
La troisième voie
Maison Java javaDidacticiel Comment Springboot lit les fichiers professionnels personnalisés et injecte des variables statiques

Comment Springboot lit les fichiers professionnels personnalisés et injecte des variables statiques

May 30, 2023 am 09:07 AM
static springboot pro

Springboot lit le fichier pro et injecte des variables statiques statiques

mailConfig.properties

#服务器
mail.host=smtp.qq.com
#端口号
mail.port=587
#邮箱账号
mail.userName=hzy_daybreak_lc@foxmail.com
#邮箱授权码
mail.passWord=vxbkycyjkceocbdc
#时间延迟
mail.timeout=25000
#发送人
mail.emailForm=hzy_daybreak_lc@foxmail.com
#发件人
mail.personal=华夏衣裳
#主题
mail.subject=同袍用户激活
#内容模板
mail.html=您的邮箱验证码为:
Copier après la connexion

MailConfig.java

/*
 * @(#)MailConfig.java    Created on 2019年9月11日
 * Copyright (c) 2019 ZDSoft Networks, Inc. All rights reserved.
 * $Id$
 */
package com.hxyc.config.properties;
 
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
 
/**
 * @author huangzy
 * @version $Revision: 1.0 $, $Date: 2019年9月11日 上午10:29:35 $
 */
@Configuration
@PropertySource(value = "classpath:config/mailConfig.properties", encoding = "UTF-8")
@Component
public class MailConfig {
    public static String host;
    public static Integer port;
    public static String userName;
    public static String passWord;
    public static String emailForm;
    public static String timeout;
    public static String personal;
    public static String html;
    public static String subject;
 
    /**
     * @return Returns the host.
     */
    public static String getHost() {
        return host;
    }
 
    /**
     * @param host
     *            The host to set.
     */
    @Value("${mail.host}")
    public void setHost(String host) {
        MailConfig.host = host;
    }
 
    /**
     * @return Returns the port.
     */
    public static Integer getPort() {
        return port;
    }
 
    /**
     * @param port
     *            The port to set.
     */
    @Value("${mail.port}")
    public void setPort(Integer port) {
        MailConfig.port = port;
    }
 
    /**
     * @return Returns the userName.
     */
    public static String getUserName() {
        return userName;
    }
 
    /**
     * @param userName
     *            The userName to set.
     */
    @Value("${mail.userName}")
    public void setUserName(String userName) {
        MailConfig.userName = userName;
    }
 
    /**
     * @return Returns the passWord.
     */
    public static String getPassWord() {
        return passWord;
    }
 
    /**
     * @param passWord
     *            The passWord to set.
     */
    @Value("${mail.passWord}")
    public void setPassWord(String passWord) {
        MailConfig.passWord = passWord;
    }
 
    /**
     * @return Returns the emailForm.
     */
    public static String getEmailForm() {
        return emailForm;
    }
 
    /**
     * @param emailForm
     *            The emailForm to set.
     */
    @Value("${mail.emailForm}")
    public void setEmailForm(String emailForm) {
        MailConfig.emailForm = emailForm;
    }
 
    /**
     * @return Returns the timeout.
     */
    public static String getTimeout() {
        return timeout;
    }
 
    /**
     * @param timeout
     *            The timeout to set.
     */
    @Value("${mail.timeout}")
    public void setTimeout(String timeout) {
        MailConfig.timeout = timeout;
    }
 
    /**
     * @return Returns the personal.
     */
    public static String getPersonal() {
        return personal;
    }
 
    /**
     * @param personal
     *            The personal to set.
     */
    @Value("${mail.personal}")
    public void setPersonal(String personal) {
        MailConfig.personal = personal;
    }
 
    /**
     * @return Returns the html.
     */
    public static String getHtml() {
        return html;
    }
 
    /**
     * @param html
     *            The html to set.
     */
    @Value("${mail.html}")
    public void setHtml(String html) {
        MailConfig.html = html;
    }
 
    /**
     * @return Returns the subject.
     */
    public static String getSubject() {
        return subject;
    }
 
    /**
     * @param subject
     *            The subject to set.
     */
    @Value("${mail.subject}")
    public void setSubject(String subject) {
        MailConfig.subject = subject;
    }
 
}
Copier après la connexion

springboot static property injection Résolvez

La première façon

Attribuer des attributs (objets) tout au long du cycle de vie d'initialisation du composant Springboot

@Component
public class DSHWechatApiUtil extends DSHBaseController {
    @Autowired
    private IThirdPartyAuthDao thirdPartyAuthDao;
    private static IThirdPartyAuthDao staticThirdPartyAuthDao;
    
    @PostConstruct
    public void init() {
        staticThirdPartyAuthDao = thirdPartyAuthDao;
    }
    public static JSONObject getAuthorizerToken(String componentAccessToken, String authorizerAppid, String authorizerRefreshToken) {
        JSONObject returnObject = new JSONObject();
        try {
            if (DSHUtils.isEmpty(componentAccessToken)) {
                componentAccessToken = staticThirdPartyAuthDao.selectWechatValue(DSHConstants.WECHAT_PARAMS.COMPONENT_ACCESS_TOKEN);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return returnObject;
    }
}
Copier après la connexion

Vous pouvez le voir lorsque la classe d'outils DSHWechatApiUtil Lorsque le composant est initialisé, la méthode marquée de l'annotation @PostConstruct est appelée et la variable statique se voit attribuer une valeur.

La deuxième façon

Grâce à l'annotation @Value()

@L'annotation Value() n'injectera pas d'attributs dans des variables statiques. , alors nous devons trouver un moyen d'attribuer des valeurs lorsque ce composant est initialisé.

La première méthode est certainement possible. Écrivez d'abord une propriété, puis attribuez la valeur à la propriété via l'annotation @Value(), et enfin attribuez la valeur à la propriété statique via l'annotation @PostConstruct.

Ici, nous devons utiliser une autre méthode. La méthode ici consiste à attribuer des valeurs via la méthode set. Les attributs sont modifiés statiquement et la méthode get est également modifiée statiquement, mais la méthode set ne peut pas être modifiée statiquement. Utilisez l'annotation @Value() pour modifier la méthode set.

Comment Springboot lit les fichiers professionnels personnalisés et injecte des variables statiques

De cette façon, vous pouvez réussir votre injection.

La troisième voie

La troisième voie est similaire à la deuxième,

@ConfigurationProperties(prefix = ProjectConfig.PROJECT_PREFIX)
public class ProjectConfig {
    public static final String PROJECT_PREFIX = "project";
    /**
     * 系统版本号
     */
    private String version;
    /**
     * 项目名称
     */
    private String name;
    /**
     * 版权年份
     */
    private String copyrightYear;
    /**
     * 实例演示开关
     */
    private static boolean demoEnabled;
    /**
     * 获取地址ip开关
     */
    private static boolean addressEnabled;
    public String getVersion() {
        return version;
    }
    public void setVersion(String version) {
        this.version = version;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCopyrightYear() {
        return copyrightYear;
    }
    public void setCopyrightYear(String copyrightYear) {
        this.copyrightYear = copyrightYear;
    }
    public boolean isDemoEnabled() {
        return demoEnabled;
    }
    public void setDemoEnabled(boolean demoEnabled) {
        ProjectConfig.demoEnabled = demoEnabled;
    }
    public static boolean isAddressEnabled() {
        return addressEnabled;
    }
    public void setAddressEnabled(boolean addressEnabled) {
        ProjectConfig.addressEnabled = addressEnabled;
    }
}
Copier après la connexion

Comme dans le code ci-dessus, définissez simplement la méthode set sur non statique, alors les propriétés statiques de cette classe de configuration peuvent être injectées avec succès.

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Lequel vaut la peine d'acheter, Xiaomi Mi Pad 6 ou Pro ? Lequel vaut la peine d'acheter, Xiaomi Mi Pad 6 ou Pro ? Feb 07, 2024 pm 08:36 PM

De nombreux utilisateurs ne savent pas lequel vaut la peine d'acheter, Xiaomi Mi Pad 6 ou Mi Pad 6. Du point de vue de la configuration, la configuration supérieure de Pro est définitivement recommandée, mais cela dépend aussi du prix et de leur propre budget, et du les différents groupes de positionnement de produits sont également différents. Lequel vaut la peine d'acheter, Xiaomi Mi Pad 6 ou Pro ? Réponse : Xiaomi Mi Pad 6 Pro sera meilleur, à la fois en termes de performances et d'autonomie de la batterie de l'appareil photo. 1. Processeur Xiaomi Pad 6 : Snapdragon 870 Xiaomi Mi Pad 6 Pro : processeur Snapdragon 8+ de première génération plus puissant 2. Taille de la batterie Xiaomi Mi Pad 6 : 8840 mAh, 67 W en deuxième charge Xiaomi Mi Pad 6 Pro : 8600 mAh, 33 W Le rapide- charger le Xiaomi Mi Pad 6 aura une meilleure durée de vie de la batterie, mais le chargement sera plus lent. 3. Prenez des photos avec Xiaomi Mi Pad 6

iPhone 15 Pro Max vs iPhone 14 Pro Max : quelles sont les comparaisons et les différences entre eux ? iPhone 15 Pro Max vs iPhone 14 Pro Max : quelles sont les comparaisons et les différences entre eux ? Sep 19, 2023 pm 08:29 PM

iPhone 15 Pro contre iPhone 14 Pro : comparaison des spécifications Voici une comparaison des spécifications entre l'iPhone 15 Pro Max et l'iPhone 14 Pro Max : iPhone 15 Pro Max iPhone 14 Pro Max Taille de l'écran 6,7 pouces 6,7 pouces Technologie d'affichage Super Retina 2 000 nits Dimensions 6,29x3 0,02x0,32 pouces 6,33x3,06x0,31 pouces Poids 221 grammes 240 grammes

Comment démarrer Xiaomi Mi Band 8pro Comment démarrer Xiaomi Mi Band 8pro Jan 14, 2024 am 08:51 AM

De nombreux utilisateurs ne savent pas comment allumer le Xiaomi Mi Band 8 au premier contact. En fait, la méthode est très simple. Il suffit de trouver le câble de données USB et de connecter la montre à l'alimentation. , puis chargez-le pendant un moment. Vous pouvez appuyer sur le bouton pour l'allumer. Comment allumer Xiaomi Mi Band 8pro 1. Installez d'abord la montre, c'est-à-dire connectez le thème et le bracelet des deux côtés. 2. Ensuite, lorsque nous allumons la montre pour la première fois, nous devons connecter le câble de chargement. La méthode de connexion se trouve au bas de la montre. 3. Attendez que la montre vibre pour s'allumer, puis connectez-la à votre téléphone. >>>

Comparaison et analyse des différences entre SpringBoot et SpringMVC Comparaison et analyse des différences entre SpringBoot et SpringMVC Dec 29, 2023 am 11:02 AM

SpringBoot et SpringMVC sont tous deux des frameworks couramment utilisés dans le développement Java, mais il existe des différences évidentes entre eux. Cet article explorera les fonctionnalités et les utilisations de ces deux frameworks et comparera leurs différences. Tout d’abord, découvrons SpringBoot. SpringBoot a été développé par l'équipe Pivotal pour simplifier la création et le déploiement d'applications basées sur le framework Spring. Il fournit un moyen rapide et léger de créer des fichiers exécutables autonomes.

La différence entre macbook air et pro La différence entre macbook air et pro Feb 08, 2024 am 09:57 AM

MacBook Air est un ordinateur portable d'Apple. De nombreux utilisateurs sont curieux de connaître les différences entre MacBook Air et Pro. Il existe certaines différences entre ces deux ordinateurs portables en termes de cœur de processeur, de fréquence principale et de type de carte graphique. Les différences entre MacBook Air et Pro : 1. Différents cœurs et threads de processeur : le processeur du MacBook Air est doté de deux cœurs et de quatre threads. Le Pro est plus puissant que le MacBook Air, avec quatre cœurs et huit threads. 2. La fréquence principale du processeur est différente : le processeur du MacBook Air a une fréquence principale de 1,6 GHz. La fréquence principale du processeur du pro est de 1,4 GHz, ce qui est légèrement inférieur à celui du MacBook Air. 3. Différentes cartes graphiques : le macbookair adopte

Date de sortie du Xiaomi Pro14 Date de sortie du Xiaomi Pro14 Jan 05, 2024 pm 02:50 PM

Xiaomi pro14 est déjà sur le marché et sa configuration est très bonne pour un ordinateur portable de bureau professionnel. Vous avez le choix entre trois configurations de processeur et le prix n'est pas particulièrement élevé. De nombreux amis ne connaissent pas l’heure de lancement précise de Xiaomi Pro14. Heure de lancement du Xiaomi Pro14 A : Xiaomi Pro14 Ryzen Edition sera disponible en précommande le 10 novembre 2021, avec un prix initial à partir de 5 299 yuans. Le Xiaomi Notebook Pro 14 sortira le 4 juillet 2022 et sera officiellement mis en vente à minuit le 8 juillet. Introduction du Xiaomi pro14 1. L'écran est équipé d'un écran Super Retina 2,5K de 14 pouces avec une résolution de 2560 x 1600, un rapport écran/corps allant jusqu'à 88 %, une gamme de couleurs 100 % sRGB et un taux de rafraîchissement de 120 Hz. 2. L'apparence adopte 6 séries

Comment obtenir la valeur dans application.yml au Springboot Comment obtenir la valeur dans application.yml au Springboot Jun 03, 2023 pm 06:43 PM

Dans les projets, certaines informations de configuration sont souvent nécessaires. Ces informations peuvent avoir des configurations différentes dans l'environnement de test et dans l'environnement de production, et peuvent devoir être modifiées ultérieurement en fonction des conditions commerciales réelles. Nous ne pouvons pas coder en dur ces configurations dans le code. Il est préférable de les écrire dans le fichier de configuration. Par exemple, vous pouvez écrire ces informations dans le fichier application.yml. Alors, comment obtenir ou utiliser cette adresse dans le code ? Il existe 2 méthodes. Méthode 1 : Nous pouvons obtenir la valeur correspondant à la clé dans le fichier de configuration (application.yml) via le ${key} annoté avec @Value. Cette méthode convient aux situations où il y a relativement peu de microservices. Méthode 2 : En réalité. projets, Quand les affaires sont compliquées, la logique

Tutoriel pratique de développement SpringBoot+Dubbo+Nacos Tutoriel pratique de développement SpringBoot+Dubbo+Nacos Aug 15, 2023 pm 04:49 PM

Cet article écrira un exemple détaillé pour parler du développement réel de dubbo+nacos+Spring Boot. Cet article ne couvrira pas trop de connaissances théoriques, mais écrira l'exemple le plus simple pour illustrer comment dubbo peut être intégré à nacos pour créer rapidement un environnement de développement.

See all articles