วิธีรายงาน / พิมพ์รายการ Spring Beans ที่โหลดทั้งหมดระหว่าง Spring MVC Application Startup
เผยแพร่แล้ว: 2016-10-24
คุณกำลังทำงานในโครงการ Spring MVC ระดับองค์กรหรือไม่ มีมากกว่าร้อยคลาสและแพ็คเกจหรือไม่? คุณกำลังดิ้นรนจริง ๆ ในการรับรายการข้อมูล Spring MVC beans ที่โหลดทั้งหมดหรือไม่
การใช้ข้อมูลโค้ด Java ด้านล่าง คุณสามารถรับรายการข้อมูล Spring Beans ที่โหลดได้เพียงปลายนิ้วสัมผัส
มาเริ่มกันเลย:
ขั้นตอนที่ 1
ข้อกำหนดเบื้องต้น: ทำตามวิธีใช้ AJAX, jQuery ใน Spring Web MVC (.jsp) – บทช่วยสอนทั้งหมด ตรวจสอบให้แน่ใจว่ามันทำงานได้อย่างสมบูรณ์
ขั้นตอนที่ 2
สร้างไฟล์ two new
ไฟล์: CrunchifyMain.java
และ 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 ; } } |
ขั้นตอนที่ 3
สร้างโฟลเดอร์ resource
เป็นโฟลเดอร์ Source Folder
ที่ตำแหน่งเดียวกับโฟลเดอร์ src

ขั้นตอนที่ 4
สร้างโฟลเดอร์ config
เป็นโฟลเดอร์ Source Folder
ใหม่ภายใต้โฟลเดอร์ resource
เหมือนกับข้างบน
ขั้นตอนที่ -5
สร้างสองไฟล์ใหม่:
-
config.properties
ภายใต้โฟลเดอร์config
-
crunchify-bean.xml
ไฟล์ภายใต้โฟลเดอร์resource
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 > |
ขั้นตอนที่ 6
ตรวจสอบให้แน่ใจว่าคุณมีโครงสร้างโครงการด้านล่าง


ขั้นตอนที่ 7
เรียกใช้โปรแกรม CrunchifyMain.java
คุณควรเห็นผลลัพธ์ด้านล่างในคอนโซล Eclipse ของคุณ
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 |
มีถั่วโหลดมากขึ้น แต่ที่นี่ฉันได้แสดงเพียง ~ 10 ในผลลัพธ์ด้านบน แจ้งให้เราทราบสิ่งที่คุณเห็นและมีคำถามใดๆ