У меня есть MainClass класс, подобный этому:
@Component
public class MainClass {
@Autowired
private Class1 object1;
@Autowired
private Class2 object2;
public static void main(String args[]) {
ApplicationContext context = new ClassPathXmlApplicationContext("myFolder/myXml.xml");
context.getBean("object1").someFunc();
}
}
XML file :
...
<bean id="randomBean" class="com.myProject.randomBean"
init-method="initRandom()" destroy-method="destroyRandom()">
<constructor-arg index="0"
value="${someValue}"></constructor-arg>
</bean>
<bean id ="object1" class="com.myProject.Class1" />
<bean id ="object2" class="com.myProject.Class2" />
<!-- My other beans including object1 and object2 are in this xml file -->
...
randomBean класс:
public class randomBean {
@Autowired
private Properties p;
public void initRandom() {
/*
The server starts normally but when that Xml file is loaded
through MainClass this throws a Null Pointer Exception ( p is null)
*/
p.calc();
}
}
Ошибка / релевантная трассировка стека :
Обнаружено исключение org.springframework.beans.factory.BeanCreationException: Ошибка при создании компонента с именем ' randomBean ', определенный в ресурсе пути к классу [myFolder / my Xml .xml]: сбой вызова метода init; вложенное исключение: java .lang.NullPointerException
Также сервер для этого приложения запускается, а затем запускается MainClass.
Цель : Я хочу использовать объекты с автопроводкой внутри основного класса.
Примечание. Я не пытаюсь создать новый объект, как предлагается здесь: Почему мое поле Spring @Autowired имеет значение null? Я только пытаюсь получить бобы