Мой основной класс выглядит следующим образом:
package main;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import testbean.MySpringBeanWithDependency;
public class Main {
public static MySpringBeanWithDependency mySpringBeanWithDependency;
@Autowired
public void setTest(MySpringBeanWithDependency mySpringBeanWithDependency) {
Main.mySpringBeanWithDependency = mySpringBeanWithDependency;
}
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
mySpringBeanWithDependency.run();
}
}
И мой класс AppConfig выглядит следующим образом:
package main;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import testbean.MySpringBeanWithDependency;
import writer.NiceWriter;
import writer.Writer;
@PropertySource("atm.properties")
@Configuration
public class AppConfig {
@Bean
public MySpringBeanWithDependency mySpringBeanWithDependency() {
return new MySpringBeanWithDependency();
}
@Bean
public Writer writer() {
return new Writer();
}
@Bean
public NiceWriter niceWriter() {
return new NiceWriter();
}
}
Хотя я создаю экземпляр компонента с именем mySpringBeanWithDependency и присваиваю его статическому полю, команда метода run () выбрасывает исключение NullPointerException.
Я видел этот обходной путь для введения статических полей в некоторых ответах, но я думаю, что он не работает для меня. Может кто-нибудь указать, где я иду не так и как мне этого добиться?