Maison > Java > javaDidacticiel > le corps du texte

Comment puis-je intégrer Spring Dependency Injection dans mon application JavaFX ?

Mary-Kate Olsen
Libérer: 2024-10-30 23:55:30
original
400 Les gens l'ont consulté

How can I integrate Spring Dependency Injection into my JavaFX application?

Intégration de l'injection de dépendances dans JavaFX à l'aide de Spring

JavaFX propose des hooks de cycle de vie qui vous permettent de définir des actions lors de l'initialisation de l'application (init()), démarrer (start()) et arrêter (stop()). Cependant, accéder aux dépendances automatiques telles que les référentiels Spring JPA au sein de ces méthodes peut être difficile.

Options d'injection de dépendances

Il existe plusieurs façons d'intégrer l'injection de dépendances dans les applications JavaFX :

  • Gluon Ignite : Un outil qui permet l'injection de dépendances avec des frameworks comme Spring, Guice et Dagger.
  • Application SpringBoot : Considérez créer une application SpringBoot pour accéder à ses dépendances prédéfinies et utiliser Spring Data pour interagir avec les bases de données.

Exemple d'intégration de base

Créons une application SpringBoot et intégrez-le à JavaFX :

<code class="java">@SpringBootApplication
public class DemoApplication extends Application {

    private ConfigurableApplicationContext springContext;
    private Parent root;

    @Override
    public void init() throws Exception {
        springContext = SpringApplication.run(DemoApplication.class);
        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/sample.fxml"));
        fxmlLoader.setControllerFactory(springContext::getBean);
        root = fxmlLoader.load();
    }

    // ...

}</code>
Copier après la connexion

Câblage automatique des contrôleurs JavaFX

Pour câbler automatiquement les contrôleurs JavaFX :

<code class="java">@Component
@Scope("prototype")
public class DemoController {

    @FXML
    private Label usernameLabel; 

    @Autowired
    public SpringService mySpringService;

    // ...

}</code>
Copier après la connexion

Annoter le contrôleur avec @Component et @Autowired pour injecter des dépendances Spring. L'annotation @Scope("prototype") garantit qu'une nouvelle instance de contrôleur est créée pour chaque vue chargée.

Séparation des préoccupations

Il est conseillé de séparer l'application JavaFX de l'application Spring pour améliorer la séparation des préoccupations. Renommez la classe d'application (par exemple, DemoFxApplication).

Câblage automatique de la classe d'application JavaFX

Pour câbler automatiquement les dépendances dans la classe d'application JavaFX :

<code class="java">springContext
    .getAutowireCapableBeanFactory()
    .autowireBeanProperties(
        this,
        AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, 
        true
    );</code>
Copier après la connexion

Autres considérations

  • Transmettez les arguments de ligne de commande de JavaFX à SpringBoot à l'aide de SpringApplication.run().
  • Utilisez SpringApplicationBuilder pour un contrôle plus précis sur Spring démarrage de l'application.
  • Utilisez des frameworks tels que mvvmFX pour l'intégration SpringBoot prédéfinie dans les applications JavaFX.

Ces techniques offrent de la flexibilité et vous permettent d'intégrer efficacement l'injection de dépendances dans les applications JavaFX avec Spring. Cependant, il est important de noter que l'injection de dépendances dans JavaFX n'est pas un sujet simple et que ces approches ne fournissent qu'un cadre d'exploration.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!