Да, разный загрузчик классов приведет к этому сценарию. Это не общий сценарий, однако в некоторых приложениях используется несколько загрузчиков классов (наиболее распространенными примерами являются контейнеры и серверы приложений). Вы можете воспроизвести его
Вы можете инициализировать контекст пружинного приложения, указав URLClassLoader
ли ваш класс расположен в
/home/jigar.joshi/foo/package/MyClass
и настроить контекст приложения для использования URLClassLoader как этого
URL[] classURLs = { new URL("file:///home/jigar.joshi/foo") };
URLClassLoader urlClassLoader = new URLClassLoader(classURLs);
ApplicationContext context = new ClassPathXmlApplicationContext("spring/applicationContext.xml") {
protected void initBeanDefinitionReader(XmlBeanDefinitionReader reader) {
super.initBeanDefinitionReader(reader);
reader.setValidationMode(XmlBeanDefinitionReader.VALIDATION_NONE);
reader.setBeanClassLoader(urlClassLoader);
setClassLoader(urlClassLoader);
}
};
MyClass m = context.getBean("MyClass");
ли как 'MyClass' тот же класс из одного пакета? – Berger
@Berger yes, sure – gstackoverflow