原文(原码)参考地址:
https://github.com/roskenet/springboot-javafx-support
https://github.com/spartajet/javafx-boot-demo
https://blog.spartajet.com/javafx-springboot-maven-kai-fa-da-bao-jiao-cheng/
自从用了springboot后就再也不想去写什么spring配置了,一看到以前的技术分分钟想死。
目录结构:

pom.xml:
1<?xml version="1.0" encoding="UTF-8"?> 2<project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>com.spartajet</groupId> 8 <artifactId>javafx-boot-demo</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 11 <properties> 12 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 13 <project.build.locales>zh_CN</project.build.locales> 14 <java.version>1.8</java.version> 15 <project.build.jdk>${java.version}</project.build.jdk> 16 <spring.boot.version>1.5.1.RELEASE</spring.boot.version> 17 <springboot-javafx-support.version>1.3.15</springboot-javafx-support.version> 18 </properties> 19 20 <dependencies> 21 <dependency> 22 <groupId>org.springframework.boot</groupId> 23 <artifactId>spring-boot-starter-actuator</artifactId> 24 <version>${spring.boot.version}</version> 25 </dependency> 26 <dependency> 27 <groupId>org.springframework.boot</groupId> 28 <artifactId>spring-boot-starter</artifactId> 29 <version>${spring.boot.version}</version> 30 <exclusions> 31 <!-- 剔除logging --> 32 <exclusion> 33 <groupId>org.springframework.boot</groupId> 34 <artifactId>spring-boot-starter-logging</artifactId> 35 </exclusion> 36 </exclusions> 37 </dependency> 38 <dependency> 39 <groupId>org.springframework.boot</groupId> 40 <artifactId>spring-boot-starter-log4j2</artifactId> 41 <version>${spring.boot.version}</version> 42 </dependency> 43 <dependency> 44 <groupId>org.springframework.boot</groupId> 45 <artifactId>spring-boot-starter-test</artifactId> 46 <version>${spring.boot.version}</version> 47 <scope>test</scope> 48 </dependency> 49 <dependency> 50 <groupId>de.roskenet</groupId> 51 <artifactId>springboot-javafx-support</artifactId> 52 <version>${springboot-javafx-support.version}</version> 53 </dependency> 54 </dependencies> 55 56 <build> 57 <plugins> 58 <plugin> 59 <groupId>org.springframework.boot</groupId> 60 <artifactId>spring-boot-maven-plugin</artifactId> 61 </plugin> 62 <plugin> 63 <groupId>com.zenjava</groupId> 64 <artifactId>javafx-maven-plugin</artifactId> 65 <configuration> 66 <mainClass>example.Main</mainClass> 67 <vendor>Spartajet</vendor> 68 </configuration> 69 </plugin> 70 </plugins> 71 72 </build> 73 74 75</project>
Main.java:
1package example; 2 3import de.felixroske.jfxsupport.AbstractJavaFxApplicationSupport; 4import javafx.stage.Stage; 5import org.springframework.boot.autoconfigure.SpringBootApplication; 6 7@SpringBootApplication 8public class Main extends AbstractJavaFxApplicationSupport { 9 public static void main(String[] args){ 10 //launch(Main.class,HelloworldView.class,args); 11 launchApp(Main.class,HelloworldView.class,args); 12 } 13 14 @Override 15 public void start(Stage stage) throws Exception { 16 super.start(stage); 17 } 18}
HelloworldView.java:
1package example; 2 3import de.felixroske.jfxsupport.AbstractFxmlView; 4import de.felixroske.jfxsupport.FXMLView; 5 6@FXMLView(value = "/example/Helloworld.fxml") 7public class HelloworldView extends AbstractFxmlView { 8}
Helloworld.fxml:
1<?xml version="1.0" encoding="UTF-8"?> 2 3<?import javafx.scene.control.*?> 4<?import javafx.scene.layout.*?> 5 6 7<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.131" xmlns:fx="http://javafx.com/fxml/1"> 8 <children> 9 <Label layoutX="244.0" layoutY="121.0" prefHeight="157.0" prefWidth="211.0" text="HELLO WORLD!" /> 10 </children> 11</Pane>