public class LiveBeansView extends Object implements LiveBeansViewMBean, ApplicationContextAware
ApplicationContext (with a
local LiveBeansView bean definition) or all registered ApplicationContexts
(driven by the "spring.liveBeansView.mbeanDomain" environment property).
Note: This feature is still in beta and primarily designed for use with Spring Tool Suite 3.1 and higher.
getSnapshotAsJson(),
LiveBeansViewServlet| Modifier and Type | Field and Description |
|---|---|
static String |
MBEAN_APPLICATION_KEY |
static String |
MBEAN_DOMAIN_PROPERTY_NAME |
| Constructor and Description |
|---|
LiveBeansView() |
| Modifier and Type | Method and Description |
|---|---|
protected Set<ConfigurableApplicationContext> |
findApplicationContexts()
Find all applicable ApplicationContexts for the current application.
|
protected String |
generateJson(Set<ConfigurableApplicationContext> contexts)
Actually generate a JSON snapshot of the beans in the given ApplicationContexts.
|
protected String |
getEscapedResourceDescription(BeanDefinition bd)
Determine a resource description for the given bean definition and
apply basic JSON escaping (backslashes, double quotes) to it.
|
String |
getSnapshotAsJson()
Generate a JSON snapshot of current beans and their dependencies,
finding all active ApplicationContexts through
findApplicationContexts(),
then delegating to generateJson(java.util.Set). |
protected boolean |
isBeanEligible(String beanName,
BeanDefinition bd,
ConfigurableBeanFactory bf)
Determine whether the specified bean is eligible for inclusion in the
LiveBeansView JSON snapshot.
|
void |
setApplicationContext(ApplicationContext applicationContext)
Set the ApplicationContext that this object runs in.
|
public static final String MBEAN_DOMAIN_PROPERTY_NAME
public static final String MBEAN_APPLICATION_KEY
public void setApplicationContext(ApplicationContext applicationContext)
ApplicationContextAwareInvoked after population of normal bean properties but before an init callback such
as InitializingBean.afterPropertiesSet()
or a custom init-method. Invoked after ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader),
ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher) and
MessageSourceAware, if applicable.
setApplicationContext in interface ApplicationContextAwareapplicationContext - the ApplicationContext object to be used by this objectBeanInitializationExceptionpublic String getSnapshotAsJson()
findApplicationContexts(),
then delegating to generateJson(java.util.Set).getSnapshotAsJson in interface LiveBeansViewMBeanprotected Set<ConfigurableApplicationContext> findApplicationContexts()
Called if no specific ApplicationContext has been set for this LiveBeansView.
protected String generateJson(Set<ConfigurableApplicationContext> contexts)
This implementation doesn't use any JSON parsing libraries in order to avoid third-party library dependencies. It produces an array of context description objects, each containing a context and parent attribute as well as a beans attribute with nested bean description objects. Each bean object contains a bean, scope, type and resource attribute, as well as a dependencies attribute with a nested array of bean names that the present bean depends on.
contexts - the set of ApplicationContextsprotected boolean isBeanEligible(String beanName, BeanDefinition bd, ConfigurableBeanFactory bf)
beanName - the name of the beanbd - the corresponding bean definitionbf - the containing bean factorytrue if the bean is to be included; false otherwiseprotected String getEscapedResourceDescription(BeanDefinition bd)
bd - the bean definition to build the resource description for