


Wie Springboot benutzerdefinierte Profi-Dateien liest und statische Variablen einfügt
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=您的邮箱验证码为:
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; } }
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; } }
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.
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; } }
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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 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

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. >>>

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

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

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

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

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.
