目次
Springboot は pro ファイルを読み取り、静的変数を挿入します
Springboot 静的プロパティ注入ソリューション
最初の方法
2 番目の方法
ホームページ Java &#&チュートリアル Springboot がカスタム pro ファイルを読み取り、静的変数を挿入する方法

Springboot がカスタム pro ファイルを読み取り、静的変数を挿入する方法

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

Springboot は pro ファイルを読み取り、静的変数を挿入します

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 静的プロパティ注入ソリューション

最初の方法

スプリングブート コンポーネントの初期化ライフ サイクルを通じて属性 (オブジェクト) を割り当てる

@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;
    }
}
ログイン後にコピー

DSHWechatApiUtil ツール クラス コンポーネントが初期化されるときに、@PostConstruct アノテーションでマークされたメソッドが呼び出されることがわかります。 . 静的変数には値が割り当てられます。

2 番目の方法

@Value() アノテーションを介して

@Value() アノテーションは静的変数に属性を挿入しません。このコンポーネントの初期化時に値を割り当てる方法を見つけてください。

最初の方法は確かに可能です。最初にプロパティを記述し、次に @Value() アノテーションを介してプロパティに値を割り当て、最後に @PostConstruct アノテーションを介して静的プロパティに値を割り当てます。

ここでは別の方法を使用する必要がありますが、ここでの方法は set メソッドを通じて値を割り当てることです。属性は静的に変更され、get メソッドも静的に変更されますが、set メソッドは静的に変更できません。set メソッドを変更するには @Value() アノテーションを使用します。

Springboot がカスタム pro ファイルを読み取り、静的変数を挿入する方法

#これにより、注入が成功します。

3 番目の方法

3 番目の方法は 2 番目の方法と似ています。

@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;
    }
}
ログイン後にコピー
上記のコードに示すように、set メソッドが非に設定されている限り、 static の場合、この構成クラス 静的プロパティは正常に挿入できます。

以上がSpringboot がカスタム pro ファイルを読み取り、静的変数を挿入する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Xiaomi Mi Pad 6とPro、どちらを買う価値がありますか? Xiaomi Mi Pad 6とPro、どちらを買う価値がありますか? Feb 07, 2024 pm 08:36 PM

多くのユーザーは、Xiaomi Mi Pad 6 と Mi Pad 6 のどちらを購入する価値があるのか​​わかりません。構成の観点からは、Pro の上位構成が間違いなく推奨されますが、価格と自分の予算、および製品の位置付けグループが異なれば、グループも異なります。 Xiaomi Mi Pad 6 と Pro、どちらを買う価値がありますか? 回答: パフォーマンスとカメラのバッテリー寿命の両方の点で、Xiaomi Mi Pad 6 Pro の方が優れています。 1. プロセッサー Xiaomi Pad 6: Snapdragon 870 Xiaomi Mi Pad 6 Pro: より強力な第一世代 Snapdragon 8+ プロセッサー 2. バッテリーサイズ Xiaomi Mi Pad 6: 8840mAh、67W 2 回目の充電 Xiaomi Mi Pad 6 Pro: 8600mAh、33W Xiaomi Mi Pad 6 を充電するとバッテリー寿命は長くなりますが、充電は遅くなります。 3. Xiaomi Mi Pad 6で写真を撮る

iPhone 15 Pro Max と iPhone 14 Pro Max: 両者の比較と違いは何ですか? iPhone 15 Pro Max と iPhone 14 Pro Max: 両者の比較と違いは何ですか? Sep 19, 2023 pm 08:29 PM

iPhone 15 Pro と iPhone 14 Pro: スペックの比較 iPhone 15 Pro Max と iPhone 14 Pro Max のスペック比較は次のとおりです: iPhone 15 Pro Max iPhone 14 Pro Max ディスプレイサイズ 6.7 インチ 6.7 インチ ディスプレイテクノロジー Super Retina 2,000 nit 寸法 6.29x3 0.02x0.32 インチ 6.33x3.06x0.31 インチ 重量 221 グラム 240 グラム

Xiaomi Mi Band 8proの起動方法 Xiaomi Mi Band 8proの起動方法 Jan 14, 2024 am 08:51 AM

Xiaomi Mi Band 8 を初めて触ったとき、多くのユーザーは電源を入れる方法がわかりません。実際、その方法は非常に簡単です。USB データ ケーブルを見つけて時計を電源に接続するだけです。を押してしばらく充電すると、ボタンを押して電源が入ります。 Xiaomi Mi Band 8proをオンにする方法 1. まず時計を取り付けます。つまり、テーマとストラップを両側に接続します。 2. 初めて時計の電源を入れるときに、充電ケーブルを接続する必要があります。接続方法は時計の下部にあります。 3. 時計が振動して電源がオンになるまで待ってから、携帯電話に接続します。 >>>

SpringBootとSpringMVCの比較と差異分析 SpringBootとSpringMVCの比較と差異分析 Dec 29, 2023 am 11:02 AM

SpringBoot と SpringMVC はどちらも Java 開発で一般的に使用されるフレームワークですが、それらの間には明らかな違いがいくつかあります。この記事では、これら 2 つのフレームワークの機能と使用法を調べ、その違いを比較します。まず、SpringBoot について学びましょう。 SpringBoot は、Spring フレームワークに基づいたアプリケーションの作成と展開を簡素化するために、Pivo​​tal チームによって開発されました。スタンドアロンの実行可能ファイルを構築するための高速かつ軽量な方法を提供します。

MacBook AirとProの違い MacBook AirとProの違い Feb 08, 2024 am 09:57 AM

MacBook Air は Apple のノートブック コンピュータです。多くのユーザーは MacBook Air と Pro の違いに興味があります。これら 2 つのノートブックには、プロセッサ コア、メイン周波数、グラフィックス カードの種類の点でいくつかの違いがあります。 MacBook Air と Pro の違い: 1. 異なるプロセッサコアとスレッド: MacBook Air のプロセッサはデュアルコアと 4 つのスレッドを備えています。 Pro は MacBook Air よりも強力で、4 つのコアと 8 つのスレッドを備えています。 2. プロセッサのメイン周波数は異なります。MacBook Air のプロセッサのメイン周波数は 1.6 GHz です。 Proのプロセッサの主な周波数は1.4GHzで、MacBook Airの周波数よりわずかに低いです。 3. さまざまなグラフィックカード: macbookair が採用

Xiaomi Pro14の発売日 Xiaomi Pro14の発売日 Jan 05, 2024 pm 02:50 PM

Xiaomi pro14はすでに発売されており、その構成はビジネスオフィスノートとしては非常に優れており、3つのプロセッサ構成から選択でき、価格も特に高くありません。多くの友人はXiaomi Pro14の具体的な発売時期を知りません。 Xiaomi Pro14の発売時期A:Xiaomi Pro14 Ryzen Editionは2021年11月10日に予約注文可能となり、初期価格は5,299元からとなります。 Xiaomi Notebook Pro 14は2022年7月4日に発売され、7月8日午前0時に正式に発売されます。 Xiaomi pro14 の紹介 1. 画面には、解像度 2560x1600、画面対本体比最大 88%、100% sRGB 色域、およびリフレッシュ レートの 14 インチ 2.5K Super Retina スクリーンが装備されています。 120Hz。 2.外観は6シリーズを採用

Springbootでapplication.ymlの値を取得する方法 Springbootでapplication.ymlの値を取得する方法 Jun 03, 2023 pm 06:43 PM

プロジェクトでは、構成情報が必要になることがよくありますが、この情報はテスト環境と本番環境で構成が異なる場合があり、実際のビジネス状況に基づいて後で変更する必要がある場合があります。これらの構成をコードにハードコーディングすることはできません。構成ファイルに記述することをお勧めします。たとえば、この情報を application.yml ファイルに書き込むことができます。では、コード内でこのアドレスを取得または使用するにはどうすればよいでしょうか?方法は2つあります。方法 1: @Value アノテーションが付けられた ${key} を介して、構成ファイル (application.yml) 内のキーに対応する値を取得できます。この方法は、マイクロサービスが比較的少ない状況に適しています。方法 2: 実際には、プロジェクト、業務が複雑な場合、ロジック

20 倍ズームを備えた 3 台のカメラ、Honor が Xiaopai Smart Camera Pro を選択 イノベーションが到来 20 倍ズームを備えた 3 台のカメラ、Honor が Xiaopai Smart Camera Pro を選択 イノベーションが到来 Aug 23, 2024 pm 09:44 PM

あなたの家にカメラを設置しましたか?近年、家庭用カメラ製品がにわかにヒットしています。周りの友達に聞いてみると、どこの家にも一台はあるし、複数持っている家もあるそうです。しかし、この製品の人気に伴い、使用中にいくつかの不満も生じています。たとえば、同時に見ることができるのは 1 つの場所だけであり、他の場所を見たい場合は、パン/チルトを調整し、カメラを前後に回転する必要があります。観察時には一定の死角と時間差が生じます。または、家の特定の場所を詳しく見たいときに、画像がぼやけていてまったく見えないなど、鮮明さが大幅に損なわれます。 Honor Select と Xiaopai Technology は共同で、「3 つのレンズとデュアル画像」を特徴とする Honor Select Xiaopai スマート カメラ プロを発売しました。業界とユーザーの問題点に対する新しいソリューションを提供します

See all articles