У меня есть приложение Spring / Swing, в котором я экспериментирую с DI, но что бы я ни делал до сих пор, я не мог заставить его работать должным образом. Вот несколько примеров классов, над которыми я работаю;
public class Launcher {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
ApplicationContext context = null;
try {
context = new AnnotationConfigApplicationContext(AppConfig.class);
MainFrame mainFrame = (MainFrame) context.getBean("mainFrame");
mainFrame.init();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (context != null)
((ConfigurableApplicationContext) context).close();
}
}
});
}
}
@Configuration
@ComponentScan("tr.com.example.*")
public class AppConfig {
@Bean(name = "mainFrame")
public MainFrame createMainFrame() {
return new MainFrame();
}
}
public class MyPanel{
@Autowired
MyManager manager;
...do stuff
}
@Service
public class MyManager{
...do stuff
}
Итак, когда я пытаюсь внедрить MyManager в MyPanel, я получаю исключение NullPointerException. Но если я попытаюсь вставить его в MainFrame, он будет работать.
Может кто-нибудь объяснить мне, что здесь не так и как мне правильно это сделать?
Заранее спасибо.