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 :
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>
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>
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>
Autres considérations
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!