aneira adequada de iniciar o aplicativo de desktop Java Swi

Qual é a maneira correta de iniciar o aplicativo que precisa de 5 a 10 segundos para recuperar dados iniciais do banco de dados? Foi isso que cheguei até agora, mas não tenho certeza de que não haja maneiras melhores. Gostaria que o acesso à GUI e ao banco de dados estivesse em segmentos diferentes, para que a criação da GUI ocorresse simultaneamente com a recuperação de dado

public static void main(String[] args) {
    final Controller controller = new Controller();
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            View frame = new View();
            controller.setView(frame);
        }
    });
    Model model = new Model();
    controller.setModel(model);
    controller.getInitialData();
}

questionAnswers(1)

yourAnswerToTheQuestion