Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

261
Visualizações
¿Usar Spring boot con javafx consumirá mucha memoria?

Estoy dispuesto a usar la tecnología Spring Boot en mi aplicación JavaFX (para aprovechar su inyección de dependencia), pero me pregunto cuáles serán las consecuencias en la memoria, ya que saben que se cargará cualquier clase con una notación de "componente". al MetaSpace (ya que Spring Boot creará un objeto estático a partir de él), por lo que con decenas de controladores de vista JavaFx cargados en el MetaSpace, nunca se recolectará basura desde el inicio de la aplicación hasta el final, lo que obviamente es algo malo. , hay alguna forma de evitar este problema?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Escribes en comentarios:

Las aplicaciones JavaFX cuando el controlador de vista no obtiene basura recolectada significa que los objetos de vista siempre permanecerán allí TableViews,ListViews,Panes ... lo que puede ocupar un espacio importante

Pero no creo que tenga que ser así.

La instancia del controlador que hace referencia a los nodos de Java es solo un objeto de Java como cualquier otro y estará disponible para la recolección de basura cuando no haya más referencias a él en la JVM.

Supongamos que configura su integración JavaFX SpringBoot de esta manera:

  • Adición de Spring Dependency Injection en JavaFX (JPA Repo, Service)

Entonces configura su controlador de fábrica para usar Spring beans:

 fxmlLoader.setControllerFactory( springContext::getBean );

Entonces sus controladores son frijoles Spring cuyo alcance puede controlar.

Si usa el alcance del prototipo :

 @Bean @Scope("prototype") public PersonController personControllerPrototype() { return new PersonController(); }

Entonces el comportamiento es como se especifica en:

  • Con respecto al alcance y la recolección de basura en el contenedor Spring bean

Spring no gestiona el ciclo de vida completo de un bean prototipo: el contenedor instancia, configura y ensambla un objeto prototipo y se lo entrega al cliente, sin más registros de esa instancia prototipo.

Por lo general, creará un controlador y agregará una referencia al árbol de objetos que instancia en el gráfico de escena. Si reemplaza el árbol en el gráfico de escena cuando navega, y no mantiene una referencia al controlador en ninguna parte, entonces el controlador y cualquier otro nodo asociado que haya sido eliminado del gráfico de escena pueden ser recolectados como elementos no utilizados.

O bien, si quisiera simplemente cargar el fxml una vez y mantener el controlador para siempre, podría usar el alcance singleton para hacerlo.

Básicamente, puede elegir el alcance y el ciclo de vida de sus controladores para que se adapte mejor a su aplicación o a los controladores individuales que está utilizando.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda