Bagaimana Mendapatkan Semua Kacang Musim Panas?

1. Gambaran keseluruhan

Dalam artikel ini, kita akan meneroka teknik yang berbeza untuk memaparkan semua kacang yang diuruskan pada musim bunga dengan bekasnya.

2. Kontena IoC

Kacang merupakan asas aplikasi yang dikendalikan oleh musim bunga; semua kacang tinggal di dalam bekas IOC, yang bertanggungjawab untuk menguruskan kitaran hidupnya.

Kita boleh mendapatkan senarai semua kacang dalam bekas ini dengan dua cara:

  1. Menggunakan antara muka ListableBeanFactory
  2. Menggunakan Spring Boot Actuator

3. Menggunakan Antaramuka ListableBeanFactory

Antara muka ListableBeanFactory menyediakan kaedah getBeanDefinitionNames () yang mengembalikan nama semua kacang yang ditentukan di kilang ini. Antaramuka ini dilaksanakan oleh semua kilang kacang yang memuatkan terlebih dahulu definisi kacang untuk menghitung semua keadaan kacang mereka.

Anda boleh mendapatkan senarai semua subinterface yang diketahui dan kelas pelaksanaannya dalam dokumentasi rasmi.

Untuk contoh ini, kami akan menggunakan Aplikasi Spring Boot.

Pertama, kami akan membuat sebilangan kacang Spring. Mari buat FooController Spring Controller yang ringkas :

@Controller public class FooController { @Autowired private FooService fooService; @RequestMapping(value="/displayallbeans") public String getHeaderAndBody(Map model){ model.put("header", fooService.getHeader()); model.put("message", fooService.getBody()); return "displayallbeans"; } }

Pengawal ini bergantung pada FooService kacang kacang lain :

@Service public class FooService { public String getHeader() { return "Display All Beans"; } public String getBody() { return "This is a sample application that displays all beans " + "in Spring IoC container using ListableBeanFactory interface " + "and Spring Boot Actuators."; } }

Perhatikan bahawa kami telah membuat dua biji yang berbeza di sini:

  1. fooController
  2. perkhidmatan

Semasa melaksanakan aplikasi ini, kami akan menggunakan objek applicationContext dan memanggil kaedah getBeanDefinitionNames () , yang akan mengembalikan semua kacang dalam container applicationContext kami :

@SpringBootApplication public class Application { private static ApplicationContext applicationContext; public static void main(String[] args) { applicationContext = SpringApplication.run(Application.class, args); displayAllBeans(); } public static void displayAllBeans() { String[] allBeanNames = applicationContext.getBeanDefinitionNames(); for(String beanName : allBeanNames) { System.out.println(beanName); } } }

Ini akan mencetak semua biji dari bekas applicationContext :

fooController fooService //other beans

Perhatikan bahawa bersama dengan kacang yang ditentukan oleh kami, ia juga akan memasukkan semua kacang lain yang terdapat di dalam bekas ini . Demi kejelasan, kami telah menghilangkannya di sini kerana terdapat banyak di antaranya.

4. Menggunakan Spring Boot Actuator

Fungsi Spring Boot Actuator menyediakan titik akhir yang digunakan untuk memantau statistik aplikasi kami.

Ia merangkumi banyak titik akhir terbina dalam, termasuk / kacang. Ini memaparkan senarai lengkap semua kacang musim bunga yang dikendalikan dalam aplikasi kami. Anda boleh mendapatkan senarai lengkap titik akhir yang ada di dokumen rasmi.

Sekarang, kita akan tekan URL //: / kacang. Kita boleh menggunakan port pelayan lalai kita jika kita belum menentukan port pengurusan yang berasingan. Ini akan mengembalikan respons JSON yang memaparkan semua biji dalam Container Spring IoC:

[ { "context": "application:8080", "parent": null, "beans": [ { "bean": "fooController", "aliases": [], "scope": "singleton", "type": "com.baeldung.displayallbeans.controller.FooController", "resource": "file [E:/Workspace/tutorials-master/spring-boot/target /classes/com/baeldung/displayallbeans/controller/FooController.class]", "dependencies": [ "fooService" ] }, { "bean": "fooService", "aliases": [], "scope": "singleton", "type": "com.baeldung.displayallbeans.service.FooService", "resource": "file [E:/Workspace/tutorials-master/spring-boot/target/ classes/com/baeldung/displayallbeans/service/FooService.class]", "dependencies": [] }, // ...other beans ] } ]

Sudah tentu, ini juga terdiri daripada banyak kacang lain yang terdapat di dalam bekas spring yang sama, tetapi demi kejelasan, kami telah menghilangkannya di sini.

Sekiranya anda ingin meneroka lebih lanjut mengenai Spring Boot Actuators, anda boleh pergi ke panduan Spring Boot Actuator utama.

5. Kesimpulan

Dalam artikel ini, kami belajar tentang cara memaparkan semua kacang di Spring IoC Container menggunakan antara muka ListableBeanFactory dan Spring Boot Actuators.

The pelaksanaan penuh tutorial ini boleh didapati di lebih Github.