Spring을 사용하여 JavaFX에 종속성 주입 통합
JavaFX는 애플리케이션 초기화(init()) 중에 작업을 정의할 수 있는 수명 주기 후크를 제공합니다. 시작(start()) 및 중지(stop()). 그러나 이러한 메서드 내에서 Spring JPA 저장소와 같은 자동 연결 종속성에 액세스하는 것은 어려울 수 있습니다.
종속성 주입 옵션
JavaFX 애플리케이션에 종속성 주입을 통합하는 방법에는 여러 가지가 있습니다.
기본 통합 예
SpringBoot 애플리케이션을 생성하고 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>
JavaFX 컨트롤러 자동 연결
JavaFX 컨트롤러를 자동 연결하려면:
<code class="java">@Component @Scope("prototype") public class DemoController { @FXML private Label usernameLabel; @Autowired public SpringService mySpringService; // ... }</code>
컨트롤러에 주석을 답니다. @Component 및 @Autowired를 사용하여 Spring 종속성을 주입합니다. @Scope("prototype") 주석은 로드된 각 뷰에 대해 새 컨트롤러 인스턴스가 생성되도록 보장합니다.
관심 사항 분리
JavaFX 애플리케이션을 관심사 분리를 강화하는 Spring 애플리케이션. 애플리케이션 클래스의 이름을 바꿉니다(예: DemoFxApplication).
JavaFX 애플리케이션 클래스 자동 연결
JavaFX 애플리케이션 클래스의 종속성을 자동 연결하려면:
<code class="java">springContext .getAutowireCapableBeanFactory() .autowireBeanProperties( this, AutowireCapableBeanFactory.AUTOWIRE_BY_TYPE, true );</code>
기타 고려 사항
이러한 기술은 유연성을 제공하고 Spring을 사용하여 JavaFX 애플리케이션에 종속성 주입을 효과적으로 통합할 수 있게 해줍니다. 그러나 JavaFX의 종속성 주입은 간단한 주제가 아니며 이러한 접근 방식은 탐색을 위한 프레임워크만 제공한다는 점에 유의하는 것이 중요합니다.
위 내용은 JavaFX 애플리케이션에 Spring 종속성 주입을 어떻게 통합할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!