一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Springboot 讀取自定義pro文件注入static靜態變量方式

Springboot 讀取自定義pro文件注入static靜態變量方式

2021-10-18 10:31貓貓桑 Java教程

這篇文章主要介紹了Springboot 讀取自定義pro文件注入static靜態變量方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Springboot 讀取pro文件注入static靜態變量

mailConfig.properties

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#服務器
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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
/*
 * @(#)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靜態屬性注入的解決

第一種方式

通過springboot組件初始化生命周期進行屬性(對象)賦值

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@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注解標注的方法,對靜態變量進行了賦值。

第二種方式

通過@Value()注解

@Value()注解不會對靜態變量進行屬性注入,通過第一種方式的思維,那么我們肯定得想個辦法,在這個組件初始化時也來賦值。

第一種方式肯定也是可以的,先寫一個屬性,然后通過@Value()注解對這個屬性進行賦值,最后通過@PostConstruct注解方式賦值給靜態屬性。

這里我們要采用另一個方式,這里的方式是通過set方法來賦值。屬性是static修飾的,get方法也是static修飾的,但是set方法不能是static修飾,使用@Value()注解來修飾set方法。

Springboot 讀取自定義pro文件注入static靜態變量方式

這樣就能成功注入。

第三種方式

第三種方式和第二種差不多,

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
@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方法設置為非靜態,那么這個配置類的靜態屬性就能成功注入了。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/u011429743/article/details/100732255

延伸 · 閱讀

精彩推薦
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7472021-02-04
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
主站蜘蛛池模板: 男女肉文高h | 美女扒开胸罩露出奶了无遮挡免费 | 亚洲女人国产香蕉久久精品 | 美女毛片老太婆bbb80岁 | 国产亚洲人成网站在线观看不卡 | 日本人成动漫网站在线观看 | 99视频都是精品热在线播放 | 黑人开嫩苞 | www.87福利| 青草网址 | 欧美同性猛男videos | 国产91精品在线播放 | 国产aaaaa一级毛片 | a毛片在线免费观看 | 国产99久久久国产精品成人 | 欧美日韩国产亚洲一区二区 | 超h高h肉h文武侠 | 美女被爆 | 日本中文字幕一区二区三区不卡 | 高清国语自产拍免费视频国产 | 国四虎影永久 | 牛牛色婷婷在线视频播放 | 国内交换一区二区三区 | 久久精品国产亚洲AV热无遮挡 | 亚洲国产成人久久午夜 | 黄色大片网站 | 成人在线一区二区三区 | 被黑人同学彻底征服全文小说阅读 | 免费大片a一级一级 | 国产精彩对白综合视频 | 青青草成人在线观看 | 拍拍叫痛的无挡视频免费 | 色播影院性播影院私人影院 | tube99大学生| 四虎影在线永久免费观看 | 国产小情侣自拍 | 国产在线观看99 | 4438全国免费观看 | 国产日韩精品一区二区在线观看播放 | 四虎comwww最新地址 | 99久久综合给久久精品 |