前言
最近在用javafx写窗体应用, 突发奇想既然都是java, 是不是可以使用springboot来开发? 上网一搜还真有, 本片摘自JavaFx系列教程之一:JavaFx+Springboot+Maven 开发打包教程
依赖
javafx的springboot支持库, 官方的没有, 开源的有不少, 我使用的是springboot-javafx-support, 这个库文档比较全, 文档地址。
maven的javafx打包工具。
Maven配置
新建一个maven工程, 并将依赖和插件配置好, 主要如下:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 
 | <properties><spring.boot.version>1.5.1.RELEASE</spring.boot.version>
 <springboot-javafx-support.version>1.3.15</springboot-javafx-support.version>
 </properties>
 <dependencies>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-actuator</artifactId>
 <version>${spring.boot.version}</version>
 </dependency>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter</artifactId>
 <version>${spring.boot.version}</version>
 </dependency>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-log4j2</artifactId>
 <version>${spring.boot.version}</version>
 </dependency>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-test</artifactId>
 <version>${spring.boot.version}</version>
 <scope>test</scope>
 </dependency>
 <dependency>
 <groupId>de.roskenet</groupId>
 <artifactId>springboot-javafx-support</artifactId>
 <version>${springboot-javafx-support.version}</version>
 </dependency>
 </dependencies>
 <build>
 <plugins>
 <plugin>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
 </plugin>
 <plugin>
 <groupId>com.zenjava</groupId>
 <artifactId>javafx-maven-plugin</artifactId>
 <configuration>
 <mainClass>com.littleboy.main.Main</mainClass>
 <vendor>littleboy</vendor>
 </configuration>
 </plugin>
 </plugins>
 </build>
 
 | 
其中,比较重要的是:<mainClass>com.littleboy.main.Main</mainClass> 这个是打包的时候的 main 类。<vendor>littleboy</vendor>是组织名称。
MainController
配置好之后就可以编写启动类了:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 
 | @SpringBootApplicationpublic class Main extends AbstractJavaFxApplicationSupport {
 
 @Override
 public void start(Stage primaryStage) {
 
 }
 
 public static void main(String[] args) {
 launch(args);
 }
 
 | 
打包
可以直接使用idea的artifacts来进行打包, 打包之后有可能会报找不到主类, 需要在manifest file中指定主类。