CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài blog CFSDN này Spring boot đưa các thuộc tính cấu hình vào các lớp Bean được tác giả sưu tầm và biên soạn. Nếu các bạn quan tâm đến bài viết này thì nhớ like nhé.
1. Sử dụng chú thích @ConfigurationProperties.
Nhìn vào tập tin cấu hình, của tôi có định dạng yaml:
?
1
2
3
4
5
6
|
// tập tin application.yml
Của tôi:
máy chủ:
- dev.bar.com
- foo.bar.com
- jiaobuchong.com
|
Tiếp theo tôi muốn đưa các thuộc tính cấu hình trên vào lớp Java Bean, hãy xem mã:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
nhập khẩu
org.springframework.boot.context.properties.ConfigurationProperties;
nhập khẩu
org.springframework.stereotype.Thành phần;
nhập khẩu
java. util. ArrayList;
nhập khẩu
java. util. List;
/**
* tập tin: MyConfig.java
* Được tạo bởi jiaobuchong vào ngày 29/12/15.
*/
@Thành phần
@Thuộc tính cấu hình
(tiền tố =
"Của tôi"
)
công cộng
lớp học
Cấu hình của tôi {
riêng tư
Danh sách máy chủ =
mới
ArrayList();
công cộng
Danh sách getServers() {
trở lại
cái này
.máy chủ;
}
}
|
Hãy viết một Controller để kiểm tra nó:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
/**
* tập tin: HelloController
* Được tạo bởi jiaobuchong vào ngày 2015/12/4.
*/
@Yêu cầu lập bản đồ
(
"/Bài kiểm tra"
)
@Bộ điều khiển nghỉ ngơi
công cộng
lớp học
Xin chàoBộ điều khiển {
@Autowired
riêng tư
Cấu hình của tôi Cấu hình của tôi;
@Yêu cầu lập bản đồ
(
"/cấu hình"
)
công cộng
Đối tượng getConfig() {
trở lại
myConfig.getServers();
}
}
|
Hãy chạy phương thức chính của Application.java và xem:
?
1
2
3
4
5
6
7
8
9
10
11
12
|
@Cấu hình
@EnableAutoConfiguration
@Thành phần quét
công cộng
lớp học
Ứng dụng {
công cộng
tĩnh
vô hiệu
main(String[] args) {
Ứng dụng SpringApplication =
mới
SpringApplication(Ứng dụng.
lớp học
);
ứng dụng.setBannerMode(Banner.Mode.OFF);
ứng dụng.run(đối số);
}
|
Trong thanh địa chỉ trình duyệt, nhập:
localhost:8080/test/config nhận được:
[“dev.bar.com”,,”foo.bar.com”,,”jiaobuchong.com”]。
2. Sử dụng kết hợp các chú thích @ConfigurationProperties và @EnableConfigurationProperties.
Các bước chung để định cấu hình bằng yaml trong spring boot là .
1. Tệp cấu hình Yaml, giả sử ở đây:
?
1
2
3
4
5
6
7
8
9
|
Của tôi:
máy chủ web:
cổng: 80
luồngPool:
Số luồng tối đa: 100
minThreads: 8
thời gian chờ nhàn rỗi: 60000
|
2、 。
?
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
|
nhập khẩu
org.springframework.boot.context.properties.ConfigurationProperties;
@Thuộc tính cấu hình
(tiền tố =
"máy chủ web của tôi"
)
công cộng
lớp học
Thuộc tính cấu hình máy chủ web của tôi {
riêng tư
số nguyên
cảng;
riêng tư
ThreadPool luồngPool;
công cộng
số nguyên
getPort() {
trở lại
cảng;
}
công cộng
vô hiệu
đặtCổng(
số nguyên
cổng) {
cái này
.port = cổng;
}
công cộng
ThreadPool lấyThreadPool() {
trở lại
luồngPool;
}
công cộng
vô hiệu
thiết lậpThreadPool(ThreadPool threadPool) {
cái này
.threadPool = threadPool;
}
công cộng
tĩnh
lớp học
Nhóm chủ đề {
riêng tư
số nguyên
maxThreads;
riêng tư
số nguyên
minThread;
riêng tư
số nguyên
thời gian chờ nhàn rỗi;
công cộng
số nguyên
lấy thời gian chờ Idle() {
trở lại
thời gian chờ nhàn rỗi;
}
công cộng
vô hiệu
đặt thời gian chờ nhàn rỗi(
số nguyên
thời gian chờ nhàn rỗi) {
cái này
.idleTimeout = thời gian chờ nhàn rỗi;
}
công cộng
số nguyên
lấy MaxThreads() {
trở lại
maxThreads;
}
công cộng
vô hiệu
đặtMaxThreads(
số nguyên
maxThreads) {
cái này
.maxThreads = số luồng tối đa;
}
công cộng
số nguyên
lấy MinThreads() {
trở lại
minThread;
}
công cộng
vô hiệu
thiết lậpMinThreads(
số nguyên
minThreads) {
cái này
.minThreads = số luồng tối thiểu;
}
}
}
|
3、 。
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
nhập khẩu
org.springframework.context.annotation.Configuration;
nhập khẩu
org.springframework.boot.context.properties.EnableConfigurationProperties;
@Cấu hình
@EnableConfigurationThuộc tính
(Thuộc tính Cấu hình Máy chủ Web của tôi.
lớp học
)
công cộng
lớp học
Cấu hình máy chủ Web của tôi {
@Autowired
riêng tư
Thuộc tính MyWebServerConfigurationProperties;
/**
*Bạn có thể trích dẫn cấu hình trong lớp MyWebServerConfigurationProperties bên dưới.
*/
công cộng
vô hiệu
thiết lậpMyconfig() {
Chuỗi cổng = properties.getPort();
}
}
|
Chú thích @EnableConfigurationProperties được tự động áp dụng cho dự án của bạn để bất kỳ bean nào được chú thích bằng @ConfigurationProperties sẽ được cấu hình từ các thuộc tính Môi trường. Kiểu cấu hình này hoạt động đặc biệt tốt với cấu hình YAML bên ngoài của SpringApplication.(Xem hướng dẫn sử dụng spring boot) 。
3. @Bean định cấu hình các thành phần của bên thứ ba (Cấu hình của bên thứ ba).
Tạo một lớp đậu:
?
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
|
/**
* Được tạo bởi jiaobuchong vào ngày 1/4/16.
*/
công cộng
lớp học
Chủ đềPoolBean {
riêng tư
số nguyên
maxThreads;
riêng tư
số nguyên
minThread;
riêng tư
số nguyên
thời gian chờ nhàn rỗi;
công cộng
số nguyên
lấy MaxThreads() {
trở lại
maxThreads;
}
công cộng
vô hiệu
đặtMaxThreads(
số nguyên
maxThreads) {
cái này
.maxThreads = số luồng tối đa;
}
công cộng
số nguyên
lấy MinThreads() {
trở lại
minThread;
}
công cộng
vô hiệu
thiết lậpMinThreads(
số nguyên
minThreads) {
cái này
.minThreads = số luồng tối thiểu;
}
công cộng
số nguyên
lấy thời gian chờ Idle() {
trở lại
thời gian chờ nhàn rỗi;
}
công cộng
vô hiệu
đặt thời gian chờ nhàn rỗi(
số nguyên
thời gian chờ nhàn rỗi) {
cái này
.idleTimeout = thời gian chờ nhàn rỗi;
}
}
|
Tham khảo các lớp cấu hình được viết trong phần thứ hai: MyWebServerConfiguration.java, MyWebServerConfigurationProperties.java và các tệp cấu hình yaml, bây giờ sửa đổi lớp MyWebServerConfiguration.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
|
nhập khẩu
com.jiaobuchong.springboot.domain.ThreadPoolBean;
nhập khẩu
org.springframework.beans.factory.annotation.Autowired;
nhập khẩu
org.springframework.boot.context.properties.EnableConfigurationProperties;
nhập khẩu
org.springframework.context.annotation.Bean;
nhập khẩu
org.springframework.context.annotation.Configuration;
/**
* Được tạo bởi jiaobuchong vào ngày 1/4/16.
*/
@Cấu hình
@EnableConfigurationThuộc tính
(Thuộc tính Cấu hình Máy chủ Web của tôi.
lớp học
)
công cộng
lớp học
Cấu hình máy chủ Web của tôi {
@SuppressCảnh báo
(
"Kiểm tra tự động SpringJava"
)
@Autowired
riêng tư
Thuộc tính MyWebServerConfigurationProperties;
@Đậu
công cộng
ThreadPoolBean lấyThreadBean() {
MyWebServerConfigurationProperties.ThreadPool threadPool = properties.getThreadPool();
ThreadPoolBean = luồngPoolBean
mới
ThreadPoolBean();
threadPoolBean. setIdleTimeout(threadPool. getIdleTimeout());
threadPoolBean. setMaxThreads(threadPool.getMaxThreads());
threadPoolBean.setMinThreads(threadPool.getMinThreads());
trở lại
luồngPoolBean;
}
}
|
Lớp được xác định bởi chú thích @Configuration thường được sử dụng làm lớp cấu hình, tương tự như tệp xml, cho biết siêu dữ liệu Bean sẽ được định cấu hình trong lớp này. Chức năng của nó tương tự như tệp cấu hình của application-context.xml. trong Spring và @ Thẻ Bean tương tự như một thể hiện Bean được khai báo trong tệp xml. Viết một bộ điều khiển để kiểm tra nó:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
nhập khẩu
com.jiaobuchong.springboot.domain.ThreadPoolBean;
nhập khẩu
org.springframework.beans.factory.annotation.Autowired;
nhập khẩu
org.springframework.web.bind.annotation.RequestMapping;
nhập khẩu
org.springframework.web.bind.annotation.RestController;
/**
* Được tạo bởi jiaobuchong vào ngày 2015/12/4.
*/
@Yêu cầu lập bản đồ
(
"/Đầu tiên"
)
@Bộ điều khiển nghỉ ngơi
công cộng
lớp học
Xin chàoBộ điều khiển {
@Autowired
riêng tư
ThreadPoolBean là gì?
@Yêu cầu lập bản đồ
(
"/testbean"
)
công cộng
Đối tượng getThreadBean() {
trở lại
luồngPoolBean;
}
}
|
Chạy phương thức chính của Application.java, .
Nhập vào trình duyệt: http://localhost:8080/first/testbean.
Giá trị trả về thu được là:
{“maxThreads”:100,”minThreads”:8,”idleTimeout”:60000} 。
Trên đây là toàn bộ nội dung bài viết này hi vọng nó sẽ giúp ích cho việc học của mọi người và cũng mong mọi người ủng hộ mình.
Liên kết gốc: http://www.cnblogs.com/myhappylife/p/5708129.html.
Cuối cùng, bài viết về Spring boot đưa các thuộc tính cấu hình vào các lớp Bean kết thúc ở đây. Nếu bạn muốn biết thêm về Spring boot đưa các thuộc tính cấu hình vào các lớp Bean, vui lòng tìm kiếm các bài viết về 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!