Existe uma maneira de imprimir todos os grãos de primavera que são carregados na inicialização? Estou usando o Spring 2.0.
94
Sim, ApplicationContext
ligue e ligue.getBeanDefinitionNames()
Você pode obter o contexto:
ApplicationContextAware
@Inject
/ @Autowired
(após 2,5)WebApplicationContextUtils.getRequiredWebApplicationContext(..)
Relacionado: Você também pode detectar o registro de cada bean registrando um BeanPostprocessor
bean. Ele será notificado para cada bean.
ApplicationContextAware
interface é porque a estrutura do Spring oferece a chance de acessar o contexto do aplicativo. Você deve colocá-lo na@Configuration
classe para o contexto de aplicativo pretendido.fonte
Imprima todos os nomes de bean e suas classes:
fonte
Com Spring Boot e o acionador de partida do atuador
você pode verificar o endpoint
/beans
fonte
applicationContext.getBeanDefinitionNames () faz não mostrar os grãos que são registradas sem instância BeanDefinition.
}
Saída do console
Como você pode ver na saída, meio ambiente, SystemProperties, systemEnvironment feijão vai não ser mostrado usando context.getBeanDefinitionNames () método.
Spring Boot
Para aplicativos da web com boot de primavera, todos os beans podem ser listados usando o endpoint abaixo.
}
fonte
Você poderia tentar ligar
Ou ative o registro de depuração para
org.springframework
. (Na bota de primavera, isso está usando um parâmetro--logging.level.org.springframework=DEBUG
)fonte
ListableBeanFactory
é uma interface. Onde se obteria uma instância de uma classe que estende essa interface para executar o métodogetBeansOfType
ou qualquer outro método na interface? Vejo que oApplicationContext
estende, mas seu exemplo não mostra como adquirir um desses.@Autowired ListableBeanFactory listableBeanFactory
e obterá um (o tipo de implementação não deve importar)Usando
spring-boot-starter-actuator
você pode acessar facilmente todos os grãos.Aqui está o processo de configuração:
Adicione o fole ao arquivo gradle:
Adicione
management.security.enabled=false
em seu arquivo application.propertyendpoint call / beans :
Depois dessa configuração, a primavera ativará alguns endpoints relacionados a métricas. Um de seus endpoints é / beans Depois de chamar este endpoints, ele fornecerá um arquivo json que contém todos os seus beans, incluindo sua dependência e escopo.
Aqui está um exemplo de arquivo json:
Para mais informações visite os links abaixo:
Espero que isso ajude você. Obrigado :)
fonte
Aqui está outra maneira de imprimir todos os nomes de bean do contexto do aplicativo Spring:
fonte