【发布时间】:2017-12-08 14:49:20
【问题描述】:
我想结合两个库 - JavaFx 和 Spring Boot,因此我需要在主类的 start() 方法中有一个 ApplicationContext 的实例:
主类:
@SpringBootApplication
public class JavaFXandSpringBootTestApplication extends Application{
@Autowired
ApplicationContext ctx;
public static void main(String[] args) {
SpringApplication.run(JavaFXandSpringBootTestApplication.class, args);
launch();
}
@Override
public void start(Stage stage) throws Exception {
FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/LogIn.fxml"));
loader.setController(ctx.getBean(LogInController.class)); // HERE OCCURES ERROR
Scene scene = new Scene((Parent)loader.load());
stage.setScene(scene);
stage.show();
}
}
控制器类:
@Component
public class LogInController {
}
我已经阅读了纪录片 @SpringBootApplication 启用了组件的自动检测功能,并且在后台还使用 @Configuration 注释类。
那么现在,为什么我要在推荐行中收到 NullPointerException 呢?这是因为 ctx 没有正确注入,但是为什么呢?我做错了什么?
【问题讨论】:
-
我还可以补充一点,其他网站中有很多以相同方式执行此操作的示例! (例如mkyong.com/spring-boot/…)
-
看看
run方法返回的内容怎么样...另外,您的launch方法在做什么看起来这是一个JavaFX 应用程序,它实际上并没有使用main在这种情况下。
标签: spring spring-boot javafx