Witam,
Zacząłem bawić się springiem oraz hibernate. Napisałem sobie jakąś prostą aplikację operującą na bazie danych. Wszystko było w porządku.
Spróbowałem więc połączyć to z interfejsem użytkownika przy pomocy JavyFX. Mam formatkę, gdzie posiadam dwa pola: login i hasło oraz przycisk zaloguj.
Napisałem sobie klasę UserDAO:
@Repository
public class UserDAO implements IUserDAO {
@Autowired
private SessionFactory sessionFactory;
public UserDAO() {
}
@Override
public void createUser(User user) {
Session session = sessionFactory.openSession();
try {
session.beginTransaction();
session.save(user);
session.getTransaction().commit();
} catch (RuntimeException e) {
if(session.getTransaction() != null)
session.getTransaction().rollback();
e.printStackTrace();
} finally {
session.flush();
session.close();
}
}
// ...
}
Tutaj kontroler tego okna:
@ComponentScan({"user"})
public class loginPanelController {
private final static Logger LOGGER = Logger.getLogger(loginPanelController.class.getName());
@FXML private TextField emailTxt;
@FXML private PasswordField passTxt;
@FXML private Button loginButton;
@FXML private ImageView exitButton;
@Autowired
private UserDAO userService;
@FXML
public void LoginButtonClicked(MouseEvent mouseEvent) {
String email = emailTxt.getText();
String password = passTxt.getText();
User u = null;
try {
u = userService.isUserExist(email, password);
} catch (UserNotExistException e) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Magazyn");
alert.setHeaderText(e.getMessage());
alert.setContentText(null);
alert.showAndWait();
}
if(u != null) {
try {
String resource;
if(!u.getPermissions()) {
resource = "/view/mainPanel/mainPanel.fxml";
} else {
resource = "/view/adminPanel/adminPanel.fxml";
}
Stage loginStage = (Stage) Stage.getWindows().get(0);
loginStage.close();
FXMLLoader loader = new FXMLLoader(getClass().getResource(resource));
Parent root = loader.load();
mainPanelController mainPanelController = loader.getController();
mainPanelController.setUser(u);
mainPanelController.setUserInfoLabel();
Stage mainStage = new Stage();
mainStage.setScene(new Scene(root));
mainStage.show();
} catch (IOException e) {
LOGGER.warning("Bład podczas tworzenia głównego okna!");
e.printStackTrace();
}
}
}
@FXML
public void ExitButtonClicked(MouseEvent mouseEvent) {
System.exit(0);
}
}
W czym jest problem: Ani w kontrolerze ani w DAO Spring nie wstrzykuje obiektów. Co może być tego przyczyną?
Pozdrawiam