Inhaltsverzeichnis
Springboot liest die Pro-Datei und injiziert statische Variablen
Springboot-Lösung zur Injektion statischer Eigenschaften
Der erste Weg
Der zweite Weg
Die dritte Methode
Heim Java javaLernprogramm Wie Springboot benutzerdefinierte Profi-Dateien liest und statische Variablen einfügt

Wie Springboot benutzerdefinierte Profi-Dateien liest und statische Variablen einfügt

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

Springboot liest die Pro-Datei und injiziert statische Variablen

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=您的邮箱验证码为:
Nach dem Login kopieren

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;
    }
 
}
Nach dem Login kopieren

Springboot-Lösung zur Injektion statischer Eigenschaften

Der erste Weg

Zuweisen von Attributen (Objekten) über den Initialisierungslebenszyklus der Springboot-Komponente

@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;
    }
}
Nach dem Login kopieren

Sie können sehen, dass bei der Initialisierung der DSHWechatApiUtil-Toolkomponente die mit der @PostConstruct-Annotation markierte Methode aufgerufen und der statischen Variablen ein Wert zugewiesen wird.

Der zweite Weg

durch die @Value()-Annotation

Die @Value()-Annotation fügt keine Attribute in statische Variablen ein. Wenn wir auf die erste Weise denken, müssen wir einen Weg finden, diese Komponente zu initialisieren. Es kommt auch Zeit für die Zuweisung Wert.

Die erste Methode ist sicherlich möglich. Schreiben Sie zuerst eine Eigenschaft, weisen Sie der Eigenschaft dann den Wert über die Annotation @Value() zu und weisen Sie schließlich den Wert der statischen Eigenschaft über die Annotation @PostConstruct zu.

Hier müssen wir eine andere Methode verwenden. Die Methode hier besteht darin, den Wert über die Set-Methode zuzuweisen. Das Attribut wird statisch geändert, und die get-Methode wird ebenfalls statisch geändert, aber die set-Methode kann nicht statisch geändert werden. Verwenden Sie die Annotation @Value(), um die set-Methode zu ändern.

Wie Springboot benutzerdefinierte Profi-Dateien liest und statische Variablen einfügt

Auf diese Weise kann die Injektion erfolgreich sein.

Die dritte Methode

Die dritte Methode ähnelt der zweiten Methode,

@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;
    }
}
Nach dem Login kopieren

Wie im obigen Code gezeigt, können die statischen Eigenschaften dieser Konfigurationsklasse sein, solange die Set-Methode auf nicht statisch eingestellt ist erfolgreich injiziert.

Das obige ist der detaillierte Inhalt vonWie Springboot benutzerdefinierte Profi-Dateien liest und statische Variablen einfügt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welches ist den Kauf wert, Xiaomi Mi Pad 6 oder Pro? Welches ist den Kauf wert, Xiaomi Mi Pad 6 oder Pro? Feb 07, 2024 pm 08:36 PM

Viele Nutzer sind sich nicht sicher, welches sich lohnt zu kaufen, Xiaomi Mi Pad 6 oder Mi Pad 6. Aus Konfigurationssicht ist die höhere Konfiguration von Pro auf jeden Fall zu empfehlen, es kommt aber auch auf den Preis und das eigene Budget an Verschiedene Produktpositionierungsgruppen sind ebenfalls unterschiedlich. Welches ist den Kauf wert, Xiaomi Mi Pad 6 oder Pro? Antwort: Das Xiaomi Mi Pad 6 Pro wird besser sein, sowohl in Bezug auf die Leistung als auch auf die Akkulaufzeit der Kamera. 1. Prozessor Xiaomi Pad 6: Snapdragon 870 Xiaomi Mi Pad 6 Pro: leistungsstärkerer Snapdragon 8+ Prozessor der ersten Generation 2. Akkugröße Xiaomi Mi Pad 6: 8840 mAh, 67 W Zweite Ladung Xiaomi Mi Pad 6 Pro: 8600 mAh, 33 W Das schnelle Das Aufladen des Xiaomi Mi Pad 6 hat eine längere Akkulaufzeit, der Ladevorgang ist jedoch langsamer. 3. Machen Sie Fotos mit dem Xiaomi Mi Pad 6

iPhone 15 Pro Max vs. iPhone 14 Pro Max: Was sind die Vergleiche und Unterschiede zwischen ihnen? iPhone 15 Pro Max vs. iPhone 14 Pro Max: Was sind die Vergleiche und Unterschiede zwischen ihnen? Sep 19, 2023 pm 08:29 PM

iPhone 15 Pro vs. iPhone 14 Pro: Vergleich der technischen Daten Hier ist ein Vergleich der technischen Daten zwischen iPhone 15 Pro Max und iPhone 14 Pro Max: iPhone 15 Pro Max iPhone 14 Pro Max Displaygröße 6,7 Zoll 6,7 Zoll Displaytechnologie Super Retina 2.000 Nits Abmessungen 6,29 x 3,5 Zoll 0,02 x 0,32 Zoll 6,33 x 3,06 x 0,31 Zoll Gewicht 221 Gramm 240 Gramm

So starten Sie Xiaomi Mi Band 8pro So starten Sie Xiaomi Mi Band 8pro Jan 14, 2024 am 08:51 AM

Viele Benutzer wissen nicht, wie sie das Xiaomi Mi Band 8 zum ersten Mal einschalten sollen. Tatsächlich ist die Methode sehr einfach. Wir müssen nur das USB-Datenkabel finden und die Uhr an die Stromversorgung anschließen , und laden Sie es dann für eine Weile auf. Sie können die Taste drücken, um es einzuschalten. So schalten Sie das Xiaomi Mi Band 8pro ein 1. Installieren Sie zuerst die Uhr, dh verbinden Sie das Thema und das Armband auf beiden Seiten. 2. Wenn wir die Uhr dann zum ersten Mal einschalten, müssen wir das Ladekabel anschließen. Die Verbindungsmethode befindet sich an der Unterseite der Uhr. 3. Warten Sie, bis die Uhr beim Einschalten vibriert, und stellen Sie dann eine Verbindung zu Ihrem Telefon her. >>>

Vergleich und Differenzanalyse zwischen SpringBoot und SpringMVC Vergleich und Differenzanalyse zwischen SpringBoot und SpringMVC Dec 29, 2023 am 11:02 AM

SpringBoot und SpringMVC sind beide häufig verwendete Frameworks in der Java-Entwicklung, es gibt jedoch einige offensichtliche Unterschiede zwischen ihnen. In diesem Artikel werden die Funktionen und Verwendungsmöglichkeiten dieser beiden Frameworks untersucht und ihre Unterschiede verglichen. Lassen Sie uns zunächst etwas über SpringBoot lernen. SpringBoot wurde vom Pivotal-Team entwickelt, um die Erstellung und Bereitstellung von Anwendungen auf Basis des Spring-Frameworks zu vereinfachen. Es bietet eine schnelle und einfache Möglichkeit, eigenständige, ausführbare Dateien zu erstellen

Der Unterschied zwischen MacBook Air und Pro Der Unterschied zwischen MacBook Air und Pro Feb 08, 2024 am 09:57 AM

MacBook Air ist ein Apple-Laptop. Viele Benutzer sind neugierig auf die Unterschiede zwischen MacBook Air und Pro. Diese beiden Notebooks weisen einige Unterschiede im Prozessorkern, der Hauptfrequenz und dem Grafikkartentyp auf. Die Unterschiede zwischen MacBook Air und Pro: 1. Unterschiedliche Prozessorkerne und Threads: Der Prozessor des MacBook Air verfügt über zwei Kerne und vier Threads. Das Pro ist mit vier Kernen und acht Threads leistungsstärker als das MacBook Air. 2. Die Hauptfrequenz des Prozessors ist unterschiedlich: Der Prozessor des MacBook Air hat eine Hauptfrequenz von 1,6 GHz. Die Hauptfrequenz des Pro-Prozessors beträgt 1,4 GHz und ist damit etwas niedriger als die des MacBook Air. 3. Verschiedene Grafikkarten: MacBookair übernimmt

Erscheinungsdatum des Xiaomi Pro14 Erscheinungsdatum des Xiaomi Pro14 Jan 05, 2024 pm 02:50 PM

Xiaomi pro14 ist bereits auf dem Markt und die Konfiguration ist für ein Business-Office-Notebook sehr gut. Es stehen drei Prozessorkonfigurationen zur Auswahl, und der Preis ist nicht besonders hoch. Viele Freunde kennen den genauen Startzeitpunkt des Xiaomi Pro14 nicht. Startzeitpunkt des Xiaomi Pro14 A: Die Xiaomi Pro14 Ryzen Edition kann am 10. November 2021 zu einem Anfangspreis ab 5.299 Yuan vorbestellt werden. Das Xiaomi Notebook Pro 14 erscheint am 4. Juli 2022 und wird am 8. Juli um Mitternacht offiziell in den Verkauf gehen. Xiaomi pro14 Einführung 1. Der Bildschirm ist mit einem 14-Zoll-2,5K-Super-Retina-Bildschirm mit einer Auflösung von 2560 x 1600, einem Bildschirm-zu-Körper-Verhältnis von bis zu 88 %, einem 100 % sRGB-Farbraum und einer Bildwiederholfrequenz von ausgestattet 120Hz. 2. Aussehen übernimmt 6er-Reihe

So erhalten Sie den Wert in application.yml in Springboot So erhalten Sie den Wert in application.yml in Springboot Jun 03, 2023 pm 06:43 PM

In Projekten werden häufig einige Konfigurationsinformationen benötigt. Diese Informationen können in der Testumgebung und in der Produktionsumgebung unterschiedliche Konfigurationen haben und müssen möglicherweise später basierend auf den tatsächlichen Geschäftsbedingungen geändert werden. Wir können diese Konfigurationen nicht fest im Code codieren. Am besten schreiben Sie sie in die Konfigurationsdatei. Sie können diese Informationen beispielsweise in die Datei application.yml schreiben. Wie erhält oder verwendet man diese Adresse im Code? Es gibt 2 Methoden. Methode 1: Wir können den Wert, der dem Schlüssel in der Konfigurationsdatei (application.yml) entspricht, über den mit @Value versehenen Wert erhalten. Diese Methode eignet sich für Situationen, in denen es relativ wenige Mikrodienste gibt: Tatsächlich Projekte, wenn das Geschäft kompliziert ist, Logik

Praktisches Tutorial zur SpringBoot+Dubbo+Nacos-Entwicklung Praktisches Tutorial zur SpringBoot+Dubbo+Nacos-Entwicklung Aug 15, 2023 pm 04:49 PM

In diesem Artikel wird ein detailliertes Beispiel geschrieben, um über die tatsächliche Entwicklung von Dubbo + Nacos + Spring Boot zu sprechen. In diesem Artikel wird nicht zu viel theoretisches Wissen behandelt, sondern das einfachste Beispiel wird geschrieben, um zu veranschaulichen, wie Dubbo in Nacos integriert werden kann, um schnell eine Entwicklungsumgebung aufzubauen.

See all articles