2
큰 응용 프로그램이며 스프링 컨테이너에 의해로드되는 여러 bean xml 파일이 있습니다.로드 된 스프링 컨텍스트 파일을 찾으십시오.
어떻게 든 무시되고 (동일한 ID를 가진) 한 콩이 있습니다.
어쨌든있는 .xml 파일을 만든 콩 로그인하는 봄을 말할 수있는 방법이 있습니까?큰 응용 프로그램이며 스프링 컨테이너에 의해로드되는 여러 bean xml 파일이 있습니다.로드 된 스프링 컨텍스트 파일을 찾으십시오.
어떻게 든 무시되고 (동일한 ID를 가진) 한 콩이 있습니다.
어쨌든있는 .xml 파일을 만든 콩 로그인하는 봄을 말할 수있는 방법이 있습니까?당신은 ReaderEventListener
를 작성하고이를 기록 할 수 있습니다. 하지만 을 XmlBeanDefinitionReader
에 설정하려면 initBeanDefinitionReader
을 재정의해야합니다 (다른 방법은 없지만 ... 일 수 있음). 예를 들어
:
public class LogReaderEventListener extends EmptyReaderEventListener {
private static final Log log = LogFactory.getLog(LogReaderEventListener.class);
@Override
public void componentRegistered(ComponentDefinition componentDefinition) {
log.info("Registered Component [" + componentDefinition.getName() + "]");
for (BeanDefinition bd : componentDefinition.getBeanDefinitions()) {
String name = bd.getBeanClassName();
if (bd instanceof BeanComponentDefinition) {
name = ((BeanComponentDefinition) bd).getBeanName();
}
log.info("Registered bean definition: [" + name + "]" +
" from " + bd.getResourceDescription());
}
}
public static void main (String[] args) {
ClassPathXmlApplicationContext context = new LogXmlContext("applicationContext.xml");
context.close();
}
}
class LogXmlContext extends ClassPathXmlApplicationContext {
public LogXmlContext(String configLocation) {
super(configLocation);
}
@Override
protected void initBeanDefinitionReader(XmlBeanDefinitionReader reader) {
super.initBeanDefinitionReader(reader);
reader.setEventListener(new LogReaderEventListener());
}
}
흥미 롭습니다.이 접근법을 점검 할 것입니다. –
아니, 난 그렇게 생각하지 않습니다. – skaffman