sách gpt4 ăn đã đi

Spring boot tiêm các thuộc tính cấu hình vào các lớp đậu

In lại Tác giả: qq735679552 Thời gian cập nhật: 29-09-2022 22:32:09 25 4
mua khóa gpt4 giày nike

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   // Không có chú thích này, @Autowired không thể được sử dụng để chèn nó.
@Thuộc tính cấu hình (tiền tố = "Của tôi" ) // Tiền tố trong file cấu hình
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  // Đánh dấu một lớp là lớp cấu hình. Khi spring boot quét chú thích này, nó sẽ tự động tải các chức năng liên quan đến lớp này, chẳng hạn như Cấu hình được thêm vào lớp khi định cấu hình AOP và các bộ chặn được giới thiệu ở bài viết trước.
 
 
@EnableAutoConfiguration // Kích hoạt cấu hình tự động. Khung có thể định cấu hình các hành vi để hướng dẫn khởi động và vận hành ứng dụng, đồng thời tự động tải cấu hình theo tệp khởi động đã nhập.
@Thành phần quét //Quét thành phần @ComponentScan(value = "com.spriboot.controller") Định cấu hình đường dẫn của 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) {
     // Lối vào duy nhất để bắt đầu dự án Spring Boot
     Ứ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 nghe #HTTP
   cổng: 80
   #Cấu hình nhóm luồng của máy chủ web nhúng
   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
//tệp MyWebServerConfigurationProperties.java
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
// tập tin: MyWebServerConfiguration.java
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
// tập tin ThreadPoolBean.java
/**
  * Đượ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 //Đây là lớp cấu hình, tương tự như @Service và @Component. Spring sẽ quét lớp này và @Bean sẽ có hiệu lực. Đăng ký lớp giá trị trả về ThreadPoolBean vào môi trường ngữ cảnh mùa xuân.
@EnableConfigurationThuộc tính (Thuộc tính Cấu hình Máy chủ Web của tôi. lớp học ) //Thông qua chú thích này, hãy định cấu hình lớp MyWebServerConfigurationProperties vào môi trường ngữ cảnh và nội dung chú thích @Autowired được sử dụng trong lớp này sẽ có hiệu lự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" ) //Thêm chú thích này để ngăn IDE báo cáo: Không thể tự động nối dây
   @Autowired
   riêng tư Thuộc tính MyWebServerConfigurationProperties;
 
   @Đậu //@Bean chú thích nằm trên phương thức, giá trị trả về là một thể hiện của một lớp và khai báo rằng giá trị trả về (trả về một đối tượng) là một Bean trong ngữ cảnh mùa xuân
   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! .

25 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress