Cara Melaporkan / Mencetak Daftar Semua Spring Beans yang Dimuat selama Startup Aplikasi Spring MVC Anda
Diterbitkan: 2016-10-24
Apakah Anda sedang mengerjakan proyek Spring MVC tingkat Perusahaan? Apakah dengan lebih dari ratusan kelas dan paket? Apakah Anda benar-benar kesulitan tentang cara mendapatkan daftar semua informasi kacang Spring MVC yang dimuat?
Dengan menggunakan cuplikan kode Java di bawah ini, Anda bisa mendapatkan daftar informasi Spring Beans yang dimuat di ujung jari Anda.
Mari kita mulai:
Langkah 1
Prasyarat: Ikuti Cara menggunakan AJAX, jQuery di Spring Web MVC (.jsp) – tutorial sepenuhnya. Pastikan itu bekerja dengan sempurna.
Langkah 2
Buat two new
: CrunchifyMain.java
dan CrunchifyLoadAllLoadedSpringMVCBean.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
package com . crunchify . controller ; import org . springframework . context . support . ClassPathXmlApplicationContext ; /* * author: Crunchify.com * */ public class CrunchifyMain { public static void main ( String [ ] args ) { CrunchifyLoadAllLoadedSpringMVCBean bean = new CrunchifyLoadAllLoadedSpringMVCBean ( ) ; ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext ( new String [ ] { "crunchify-bean.xml" } ) ; bean . crunchifyLogSpringBeans ( ctx ) ; } } |
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 |
package com . crunchify . controller ; import org . springframework . context . ApplicationContext ; /* * author: Crunchify.com * */ public class CrunchifyLoadAllLoadedSpringMVCBean { public void crunchifyLogSpringBeans ( ApplicationContext ctx ) { String [ ] crunchifyBeans = ctx . getBeanDefinitionNames ( ) ; int loadedTotalBeans = ctx . getBeanDefinitionCount ( ) ; String crunchifyFormat = getCrunchifyFormat ( crunchifyBeans ) ; printStatement ( String . format ( "------------- Total Loaded Spring Beans: %d ------------- \n" , loadedTotalBeans ) ) ; int count = 1 ; for ( String crunchifyBean : crunchifyBeans ) { Class < ? > beanType = ctx . getType ( crunchifyBean ) ; Package beanPackage = beanType . getPackage ( ) ; printStatement ( String . format ( crunchifyFormat , count ++ , crunchifyBean , beanType . getName ( ) , beanPackage ) ) ; } } private static void printStatement ( String value ) { System . out . println ( value ) ; } private static String getCrunchifyFormat ( String [ ] crunchifyBean ) { int namespace = betterAlignment ( crunchifyBean ) ; int typespace = ( crunchifyBean . length < 100 ) ? 2 : 3 ; return String . format ( "%%%dd: Crunchify Bean Name: %%-%ds \n - Bean Type: %%s \n - Package: %%s \n" , typespace , namespace ) ; } private static int betterAlignment ( String [ ] crunchifyBean ) { int length = 0 ; for ( String crunchifyString : crunchifyBean ) { if ( crunchifyString . length ( ) > length ) length = crunchifyString . length ( ) ; } return length ; } } |
Langkah-3
Buat folder resource
sebagai Source Folder
di lokasi yang sama dengan folder src
.

Langkah-4
Buat folder config
sebagai Source Folder
baru di bawah folder resource
. Sama seperti di atas.
Langkah-5
Buat dua file baru:
-
config.properties
di bawah folderconfig
-
crunchify-bean.xml
file di bawah folderresource
1 2 3 |
TEAM = CRUNCHIFY . COM FILE_PATH = config / crunchify . properties ANY_OTHER_KEY_VALUES = AS_PER_YOUR_NEED |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<? xml version = "1.0" encoding = "UTF-8" ?> < beans xmlns = "http://www.springframework.org/schema/beans" xmlns : util = "http://www.springframework.org/schema/util" xmlns : xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns : context = "http://www.springframework.org/schema/context" xsi : schemaLocation = " http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd" > < util : properties id = "nodeProperty" location = "classpath:config/crunchify.properties" / > < context : property - placeholder properties - ref = "nodeProperty" / > < context : component - scan base - package = "com.crunchify.controller" / > < / beans > |
Langkah-6
Pastikan Anda memiliki struktur proyek di bawah ini.


Langkah-7
Jalankan program CrunchifyMain.java
.
Anda akan melihat hasil seperti di bawah ini di konsol Eclipse Anda.
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 |
Dec 22 , 2014 3 : 06 : 28 PM org . springframework . context . support . ClassPathXmlApplicationContext prepareRefresh INFO : Refreshing org . springframework . context . support . ClassPathXmlApplicationContext @ 5629626a : startup date [ Mon Dec 22 15 : 06 : 28 CST 2014 ] ; root of context hierarchy Dec 22 , 2014 3 : 06 : 28 PM org . springframework . beans . factory . xml . XmlBeanDefinitionReader loadBeanDefinitions INFO : Loading XML bean definitions from class path resource [ crunchify - bean . xml ] Dec 22 , 2014 3 : 06 : 29 PM org . springframework . beans . factory . config . PropertiesFactoryBean loadProperties INFO : Loading properties file from class path resource [ config / crunchify . properties ] ------------- Total Loaded Spring Beans : 10 ------------- 1 : Crunchify Bean Name : nodeProperty - Bean Type : java . util . Properties - Package : package java . util , Java Platform API Specification , version 1.7 2 : Crunchify Bean Name : org . springframework . beans . factory . config . PropertyPlaceholderConfigurer #0 - Bean Type : org . springframework . beans . factory . config . PropertyPlaceholderConfigurer - Package : package org . springframework . beans . factory . config 3 : Crunchify Bean Name : crunchifyHelloWorld - Bean Type : com . crunchify . controller . CrunchifyHelloWorld - Package : package com . crunchify . controller 4 : Crunchify Bean Name : crunchifySpringAjaxJQuery - Bean Type : com . crunchify . controller . CrunchifySpringAjaxJQuery - Package : package com . crunchify . controller 5 : Crunchify Bean Name : org . springframework . context . annotation . internalConfigurationAnnotationProcessor - Bean Type : org . springframework . context . annotation . ConfigurationClassPostProcessor - Package : package org . springframework . context . annotation 6 : Crunchify Bean Name : org . springframework . context . annotation . internalAutowiredAnnotationProcessor - Bean Type : org . springframework . beans . factory . annotation . AutowiredAnnotationBeanPostProcessor - Package : package org . springframework . beans . factory . annotation 7 : Crunchify Bean Name : org . springframework . context . annotation . internalRequiredAnnotationProcessor - Bean Type : org . springframework . beans . factory . annotation . RequiredAnnotationBeanPostProcessor - Package : package org . springframework . beans . factory . annotation 8 : Crunchify Bean Name : org . springframework . context . annotation . internalCommonAnnotationProcessor - Bean Type : org . springframework . context . annotation . CommonAnnotationBeanPostProcessor - Package : package org . springframework . context . annotation 9 : Crunchify Bean Name : org . springframework . context . annotation . ConfigurationClassPostProcessor . importAwareProcessor - Bean Type : org . springframework . context . annotation . ConfigurationClassPostProcessor $ ImportAwareBeanPostProcessor - Package : package org . springframework . context . annotation 10 : Crunchify Bean Name : org . springframework . context . annotation . ConfigurationClassPostProcessor . enhancedConfigurationProcessor - Bean Type : org . springframework . context . annotation . ConfigurationClassPostProcessor $ EnhancedConfigurationBeanPostProcessor - Package : package org . springframework . context . annotation |
Ada lebih banyak kacang yang dimuat tetapi di sini saya hanya menunjukkan ~ 10 dalam hasil di atas. Beri tahu saya apa yang Anda lihat dan ada pertanyaan.