Я разрабатываю приложение JavaFX CRUD с SpringBoot + SpringJDB C + SQLite. Я использую Eclipse IDE.
STORY: Я разрабатываю это приложение как процесс StepByStep. И я получил CRUD-приложение JavaFX + SQLite с подключением Old School JDB C. Но после интеграции SpringBoot + SpringJDB C я получаю ошибку. Я думаю, что ошибка при передаче конфигурации приложения для всех файлов.
Main.Class
@SpringBootApplication
public class Main {
public static void main(String[] args) {
Application.launch(MyApplication.class, args);
}
}
AND MyApplication.Class (без аннотации)
public class MyApplication extends Application {
protected ConfigurableApplicationContext applicationContext;
@Override
public void init() throws Exception {
applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
}
@Override
public void stop() throws Exception {
applicationContext.close();
Platform.exit();
}
@Override
public void start(Stage stage) throws Exception {
stage.setTitle("ExYouTub");
stage.setOnCloseRequest(x -> {
Platform.exit();
});
stage.setResizable(false);
stage.setScene(new Scene(FXMLLoader.load(getClass().getResource("../Sample.fxml"))));
stage.show();
}
}
AND AppConfig.class
@Configuration
@ConditionalOnClass(DataSource.class)
@Profile("sqlite")
@ComponentScan(basePackages= "com.fz")
@PropertySource("classpath:data/config.properties")
public class AppConfig {
@Autowired
Environment environment;
private final String DB_URL = "fz.db.url";
@Bean
DataSource dataSource() {
final DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource();
driverManagerDataSource.setUrl(environment.getProperty(DB_URL));
return driverManagerDataSource;
}
}
AND SampleController.class
@Controller
public class SampleController implements Initializable {
//-- un-necessary lines are ignored to copy
@Autowired
@Qualifier("studentsDAOImpl")
private StudentsDAO studentsDAO;
@Override
public void initialize(URL location, ResourceBundle resources) {
tableViewList.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
setColumnProperties();
loadStudentsDetails();
}
private void loadStudentsDetails() {
studentsList.clear();
studentsList.addAll(studentsDAO.getAllStudents()); // this is line 83
tableViewList.setItems(studentsList);
}
}
AND Отчет об ошибке
Caused by: java.lang.NullPointerException
at com.fz.SampleController.loadStudentsDetails(SampleController.java:83)
at com.fz.SampleController.initialize(SampleController.java:78)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2573)
... 17 more
И до сих пор мое предположение об этой ошибке таково, что конфигурация не работает должным образом - я так думаю. Мне нужно предложение и помочь мне улучшить это.