CFSDN nhấn mạnh vào việc tạo ra giá trị thông qua mã nguồn mở. Chúng tôi cam kết xây dựng một nền tảng chia sẻ tài nguyên để mọi người làm CNTT có thể tìm thấy thế giới tuyệt vời của riêng mình tại đây.
Bài đăng trên blog CFSDN Springboot đọc các tệp chuyên nghiệp tùy chỉnh để đưa các biến tĩnh này được tác giả thu thập và sắp xếp. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.
Springboot đọc tệp pro và chèn các biến tĩnh
mailConfig.properties .
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#máy chủ
mail.host=smtp.qq.com
#Số cổng
mail.port=
587
#Tài khoản Email
mail.userName=hzy_daybreak_lc
@foxmail
.com
#Mã xác thực email
mail.passWord=vxbkycyjkceocbdc
#Thời gian trễ
mail.timeout=
25000
#Người gửi
mail.emailForm=hzy_daybreak_lc
@foxmail
.com
#Người gửi
mail.personal=Quần áo Huaxia
#chủ đề
mail.subject=Kích hoạt người dùng Tongpao
#Mẫu Nội dung
mail.html=Mã xác minh email của bạn là:
|
MailConfig.java.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
hai mươi mốt
hai mươi hai
hai mươi ba
hai mươi bốn
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
|
@Giá trị
(
"${mail.chủ đề}"
)
công cộng
vô hiệu
setSubject(Chuỗi chủ đề) {
MailConfig.subject = chủ đề;
}
}
|
Giải pháp tiêm thuộc tính tĩnh của Springboot
Phương pháp đầu tiên
Gán các thuộc tính (đối tượng) thông qua vòng đời khởi tạo thành phần springboot.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
hai mươi mốt
hai mươi hai
|
@Thành phần
công cộng
lớp học
DSHWechatApiUtil
mở rộng
Bộ điều khiển DSHBase {
@Autowired
riêng tư
IThirdPartyAuthDao thirdPartyAuthDao;
riêng tư
tĩnh
IThirdPartyAuthDao tĩnhThirdPartyAuthDao;
@PostXây dựng
công cộng
vô hiệu
khởi tạo() {
staticThirdPartyAuthDao = thirdPartyAuthDao;
}
công cộng
tĩnh
JSONObject getAuthorizerToken(Chuỗi componentAccessToken, Chuỗi authorizerAppid, Chuỗi authorizerRefreshToken) {
JSONObject trả vềObject =
mới
Đối tượng JSON();
thử
{
nếu như
(DSHUtils.isEmpty(thành phầnAccessToken)) {
thành phầnAccessToken = staticThirdPartyAuthDao.selectWechatValue(DSHConstants.WECHAT_PARAMS.COMPONENT_ACCESS_TOKEN);
}
}
nắm lấy
(Ngoại lệ e) {
e.printStackTrace();
}
trở lại
returnObject;
}
}
|
Có thể thấy rằng khi thành phần lớp công cụ DSHWechatApiUtil được khởi tạo, phương thức được chú thích bằng @PostConstruct được gọi để gán giá trị cho các biến tĩnh.
Phương pháp thứ hai
Thông qua chú thích @Value().
Chú thích @Value() không inject thuộc tính vào biến tĩnh. Dựa trên cách nghĩ đầu tiên, chúng ta phải tìm cách gán giá trị khi thành phần này được khởi tạo.
Phương pháp đầu tiên chắc chắn là khả thi. Đầu tiên, hãy viết một thuộc tính, sau đó gán giá trị cho thuộc tính này thông qua chú thích @Value() và cuối cùng gán nó cho thuộc tính tĩnh thông qua chú thích @PostConstruct.
Ở đây chúng ta phải sử dụng một cách tiếp cận khác, đó là gán giá trị thông qua phương thức set. Thuộc tính được sửa đổi tĩnh, phương thức get cũng được sửa đổi tĩnh, nhưng phương thức set không thể được sửa đổi tĩnh, hãy sử dụng chú thích @Value() để sửa đổi phương thức set.

Điều này sẽ giúp cho việc tiêm thuốc được thành công.
Cách thứ ba
Phương pháp thứ ba tương tự như phương pháp thứ hai.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
hai mươi mốt
hai mươi hai
hai mươi ba
hai mươi bốn
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
|
@Thuộc tính cấu hình
(tiền tố = ProjectConfig.PROJECT_PREFIX)
công cộng
lớp học
Dự ánCấu hình {
công cộng
tĩnh
cuối cùng
Chuỗi PROJECT_PREFIX =
"dự án"
;
/**
* Số phiên bản hệ thống
*/
riêng tư
Phiên bản chuỗi;
/**
* Tên dự án
*/
riêng tư
Tên chuỗi;
/**
* Năm bản quyền
*/
riêng tư
Chuỗi bản quyềnNăm;
/**
* Ví dụ về công tắc trình diễn
*/
riêng tư
tĩnh
Boolean
demoĐã bật;
/**
* Lấy địa chỉ ip switch
*/
riêng tư
tĩnh
Boolean
địa chỉĐã bật;
công cộng
Chuỗi getVersion() {
trở lại
phiên bản;
}
công cộng
vô hiệu
setVersion(Phiên bản chuỗi) {
cái này
.version = phiên bản;
}
công cộng
Chuỗi getName() {
trở lại
tên;
}
công cộng
vô hiệu
setName(Tên chuỗi) {
cái này
.name = tên;
}
công cộng
Chuỗi getCopyrightYear() {
trở lại
bản quyềnNăm;
}
công cộng
vô hiệu
setCopyrightYear(Chuỗi năm bản quyền) {
cái này
.copyrightYear = năm bản quyền;
}
công cộng
Boolean
isDemoEnabled() {
trở lại
demoĐã bật;
}
công cộng
vô hiệu
đặtDemoEnabled(
Boolean
demoĐã bật) {
ProjectConfig.demoEnabled = demoEnabled;
}
công cộng
tĩnh
Boolean
isAddressEnabled() {
trở lại
địa chỉĐã bật;
}
công cộng
vô hiệu
đặtĐịa chỉĐã bật(
Boolean
địa chỉĐã bật) {
ProjectConfig.addressEnabled = addressEnabled;
}
}
|
Như được hiển thị trong đoạn mã trên, miễn là phương thức set được đặt thành không tĩnh thì các thuộc tính tĩnh của lớp cấu hình này có thể được đưa vào thành công.
Trên đây là kinh nghiệm cá nhân của tôi, hy vọng có thể giúp bạn tham khảo và mong bạn có thể ủng hộ tôi.
Liên kết gốc: https://blog.csdn.net/u011429743/article/details/100732255.
Cuối cùng, bài viết này về cách Springboot đọc các tệp pro tùy chỉnh và inject các biến tĩnh đã kết thúc. Nếu bạn muốn biết thêm về cách Springboot đọc các tệp pro tùy chỉnh và inject các biến tĩnh, vui lòng tìm kiếm các bài viết CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!