SpringMVCアプリケーションの起動時にロードされたすべてのSpringBeanのリストをレポート/印刷する方法
公開: 2016-10-24
エンタープライズレベルのSpringMVCプロジェクトに取り組んでいますか? 何百ものクラスとパッケージがありますか? ロードされたすべてのSpringMVC Bean情報のリストを取得する方法に本当に苦労していますか?
以下のJavaコードスニペットを使用すると、ロードされたSpringBeans情報のリストを指先で取得できます。
始めましょう:
ステップ1
前提条件:Spring Web MVC(.jsp)でAJAX、jQueryを使用する方法–チュートリアルを完全に実行してください。 完全に機能していることを確認してください。
ステップ2
CrunchifyMain.java
とCrunchifyLoadAllLoadedSpringMVCBean.java
two new
ファイルを作成します
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
src
フォルダーと同じ場所にSource Folder
フォルダーとしてresource
フォルダーを作成します。

ステップ-4
resource
フォルダの下に新しいSource Folder
としてconfig
フォルダを作成します。 同上。
ステップ-5
2つの新しいファイルを作成します。
-
config
フォルダーの下のconfig.properties
-
resource
フォルダの下crunchify-bean.xml
ファイル
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 |
ロードされたBeanはもっとたくさんありますが、ここでは上記の結果で10個までしか示していません。 あなたが見ているものを教えてください、そして質問があります。