Como relatar / imprimir lista de todos os Spring Beans carregados durante a inicialização do aplicativo Spring MVC
Publicados: 2016-10-24
Você está trabalhando no projeto Spring MVC de nível empresarial? É com mais de centenas de aulas e pacotes? Você está realmente lutando em como obter a lista de todas as informações de beans Spring MVC carregados?
Usando o trecho de código Java abaixo, você pode obter uma lista de informações de Spring Beans carregadas na ponta do dedo.
Vamos começar:
Passo 1
Pré-requisito: Siga Como usar AJAX, jQuery no Spring Web MVC (.jsp) – tutorial completo. Certifique-se de que está funcionando perfeitamente.
Passo 2
Crie two new
arquivos: CrunchifyMain.java
e 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 ; } } |
Etapa 3
Crie a pasta de resource
como pasta de Source Folder
no mesmo local da pasta src
.

Passo 4
Crie a pasta de config
como nova pasta de Source Folder
de resource
. O mesmo que acima.
Passo-5
Crie dois novos arquivos:
-
config.properties
na pasta deconfig
- arquivo
crunchify-bean.xml
na pasta deresource
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 > |
Passo-6
Certifique-se de ter a estrutura do projeto abaixo.


Passo-7
Execute o programa CrunchifyMain.java
.
Você deve ver o resultado como abaixo em seu console do 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 |
Há muito mais beans carregados, mas aqui eu mostrei apenas ~ 10 no resultado acima. Deixe-me saber o que você vê e tem alguma dúvida.