2017-03-23 9 views
0

나는 Spring Boot를 사용하고 인스턴스화하는 Bean에 문제가있다.특정 bean을 가지고있는 Spring ApplicationContext를 찾기위한 OQL 질의

OQL 쿼리에서 Bean 참조로부터 ApplicationContext에 대한 참조를 어떻게 찾을 수 있습니까? 다른 말로하면 주어진 bean에 대한 Context를 가지고있는 것을 발견 할 수있다. VisualVM과의

PS 기본 문제 해결 쿼리

heap.objects("org.springframework.context.support.AbstractApplicationContext") 
heap.objects("org.springframework.core.io.DefaultResourceLoader") 

답변

0

ApplicationContext 당 콩 이름으로 빈 인스턴스를 찾기 ::

map(heap.objects("org.springframework.context.support.AbstractApplicationContext"), function(it) { 
    var fact = it.beanFactory; 
    var tbl = fact.singletonObjects.table; 
    var beans = map(filter(tbl, "it && /Step$/.test(it.key)"), "{key: it.key, val: it.val}"); 
    return {ctx: it, beans: beans}; 
}) 

ApplicationContext 당 클래스 이름으로 빈 인스턴스를 찾기 ::

map(heap.objects("org.springframework.context.support.AbstractApplicationContext"), function(it) { 
    var fact = it.beanFactory; 
    var tbl = fact.singletonObjects.table; 
    var beans = map(filter(tbl, "it && /^com.bigbrother/.test(classof(it.val).name)"), "{key: it.key, val: it.val}"); 
    return {ctx: it, beans: beans}; 
}) 

Spring이 기본 구현을 변경하면 이러한 쿼리를 조정해야합니다. 분야를 찾으십시오 :

heap.objects("org.springframework.context.support.AbstractApplicationContext")