JavaFX 應用程式具有預先定義的生命週期掛鉤(init( )、start( ) 和stop()) 用於管理應用程式初始化和生命週期事件。但是,將 Spring 依賴項(例如 JPA 儲存庫)直接注入這些方法可能無法運作。這是因為 JavaFX 將其生命週期方法與 Spring 應用程式上下文隔離。
選項 1:使用 Spring Boot 應用程式
考慮將 JavaFX 應用程式轉換為 Spring Boot 應用程式。這提供了與 Spring 框架的完全集成,包括依賴注入、JPA 儲存庫和其他 Spring 設施。
選項 2:手動依賴注入
1。透過JavaFXMLLoader 整合
在FXMLLoader 上使用setControllerFactory 方法允許Spring 實例化FXML 控制器並註入Spring 依賴項:
<code class="java">fxmlLoader.setControllerFactory(springContext::getBean);</code>
使用@Compon 和 Springent 與您的註解JavaFX控制器用於接收依賴項的註解:
<code class="java">@Component @Scope("prototype") public class DemoController { @FXML private Label usernameLabel; @Autowired public SpringService mySpringService; ... }</code>
2.注入JavaFX 應用程式類別
如果要將Spring beans 注入JavaFX 應用程式類別:
<code class="java">springContext .getAutowireCapableBeanFactory() .autowireBeanProperties( this, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, true );</code>
保持關注點分離,建議將Spring Boot應用程式與 JavaFX 應用程式分開。執行 Spring Boot 應用程式以初始化 Spring 上下文並將其傳遞給 JavaFX 應用程式。
使用 getParameters().getRaw().toArray( new String[0]) 方法將參數從 JavaFX 傳遞到 Spring Boot。
以上是如何將 Spring 依賴項(如 JPA 儲存庫)注入到 JavaFX 生命週期方法中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!