国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

springboot開發(fā)PC端桌面應用

這篇具有很好參考價值的文章主要介紹了springboot開發(fā)PC端桌面應用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?一、需求描述:

1、要求桌面能在window、Linux和macos系統(tǒng)上運行

2、用戶自定義數(shù)據(jù)篩選策略,策略可通過excel導入導出

3、選擇多個excel文件通過策略過濾生成新的excel

二、技術選型及集成環(huán)境配置:

1、PC端跨平臺直接選用javafx來作為桌面開發(fā)

2、動態(tài)數(shù)據(jù)規(guī)則使用drools以及內(nèi)存數(shù)據(jù)庫H2

3、excel操作選擇阿里的easyexcel

4、基礎環(huán)境:win10專業(yè)版、idea2023.1.3、springboot3.0.8、jdk17

三、基礎環(huán)境搭建

1、下載jdk17下載地址:Java Downloads | Oracle

2、javafx-sdk和jmode(打exe程序的時候用)下載地址:JavaFX - Gluon

springboot開發(fā)PC端桌面應用

?

3、將jar打包成其他系統(tǒng)可執(zhí)行文件的工具(wix311)下載 安裝:Release WiX Toolset v3.11.2 · wixtoolset/wix3 · GitHub

4、環(huán)境變量參考:

springboot開發(fā)PC端桌面應用

?

四、開發(fā)項目配置:

1、新建springboot項目

2、pom文件參考

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.8</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.stats.excel</groupId>
    <artifactId>stats-excel</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>stats-excel</name>
    <description>stats-excel</description>
    <properties>
        <java.version>8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>

        </dependency>

        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- 桌面庫-->
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>17</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-fxml</artifactId>
            <version>17</version>
        </dependency>
        <!-- JavaFX -->
<!--        <dependency>-->
<!--            <groupId>org.openjfx</groupId>-->
<!--            <artifactId>javafx-controls</artifactId>-->
<!--            <version>17</version>-->
<!--        </dependency>-->
        <!-- 表格出來工具 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.3.2</version>
        </dependency>
        <!-- 數(shù)據(jù)框架-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.3.1</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.13.5</version>
        </dependency>
        <!-- Drools -->
        <dependency>
            <groupId>org.drools</groupId>
            <artifactId>drools-core</artifactId>
            <version>7.61.0.Final</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

3、application啟動文件參考

package com.stats.excel.statsexcel;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.util.Callback;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

import java.net.URL;

@SpringBootApplication
public class StatsExcelApplication extends Application {

    // 任何地方都可以通過這個applicationContext獲取springboot的上下文
    public static ConfigurableApplicationContext applicationContext;
    private static String[] args;

    @Override
    public void start(Stage primaryStage) throws Exception {
        URL resource = getClass().getResource("/fxml/login.fxml");
        if (resource == null) {
            throw new Exception();
        }
        // 加載 fxml 下面的邏輯可以單獨封裝
        FXMLLoader loader = new FXMLLoader(resource);
        loader.setControllerFactory(new Callback<Class<?>, Object>() {
            @Override
            public Object call(Class<?> param) {
                // 控制器工廠提供bean注入,此處的缺點是不能根據(jù)bean名字注入,只能通過class類型注入bean
                // 解決方案:
                // 1、SpringbootJavafxDemoApplication.applicationContext.getBean("Bean Name", Bean.class);
                // 2、@Autowired private ApplicationContext applicationContext;
                // Object bean_name = applicationContext.getBean("bean Name", Bean.class);
                return applicationContext.getBean(param);
            }
        });
        // 加載
        VBox root = loader.load();

        primaryStage.setScene(new Scene(root));
        primaryStage.show();
    }


    public static void main(String[] args) {
        StatsExcelApplication.args = args;
        launch(args);
    }

    @Override
    public void init() throws Exception {
        // 啟動springboot
        applicationContext = SpringApplication.run(StatsExcelApplication.class, args);
    }

    @Override
    public void stop() throws Exception {
        // 關閉springboot
        applicationContext.stop();
    }

}

4、其他service層、controller層以及數(shù)據(jù)庫配置請參考項目:非生物語言學家 / DesktopAPP桌面應用開發(fā) · GitCode

5、啟動類配置:

5.1、新增javafx-sdk啟動參數(shù)配置

--module-path
"D:\java\install\openjfx-17.0.7_windows-x64_bin-sdk\javafx-sdk-17.0.7\lib"
--add-modules
javafx.controls,javafx.fxml

springboot開發(fā)PC端桌面應用

5.2、?Artifacts依賴(javafx-sdk-17.0.7\bin下的所有文件)導入:

springboot開發(fā)PC端桌面應用

?6、jar轉(zhuǎn)win可執(zhí)行exe文件命令參考:

jpackage --type exe --input . --dest . --main-jar .\[你打的jar包] --main-class [你工程的包名.啟動類]p --module-path "[你的javafx-jmods路徑]" --add-modules javafx.controls,javafx.fxml --win-shortcut --win-menu

五、效果展示略文章來源地址http://www.zghlxwxcb.cn/news/detail-512736.html

到了這里,關于springboot開發(fā)PC端桌面應用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • [桌面運維]PC常用的視頻接口,顯示器VGA、DVI、HDMI、DP、USB-C接口的認識和應用

    [桌面運維]PC常用的視頻接口,顯示器VGA、DVI、HDMI、DP、USB-C接口的認識和應用

    ????????????????(*^▽^*)歡迎光臨 ??????????????? ??write in front?? ??個人主頁:陳丹宇jmu ??歡迎各位→點贊?? + 收藏?? + 留言??? ??聯(lián)系作者??by QQ:813942269?? ??致親愛的讀者:很高興你能看到我的文章,希望我的文章可以幫助到你,祝萬事

    2024年02月07日
    瀏覽(19)
  • 嵌入式設備應用開發(fā)(發(fā)現(xiàn)需求和提升價值)

    嵌入式設備應用開發(fā)(發(fā)現(xiàn)需求和提升價值)

    【 聲明:版權所有,歡迎轉(zhuǎn)載,請勿用于商業(yè)用途。 聯(lián)系信箱:feixiaoxing @163.com】 ? ? ? ? 很多做技術的同學,都會陷入到技術的窠臼之中。對于如何做具體的產(chǎn)品、實現(xiàn)具體的技術,他們可能很感興趣。但是做出來的東西做什么用,或者說是有沒有競爭力,事實上他們不

    2024年02月11日
    瀏覽(29)
  • HarmonyOS/OpenHarmony應用開發(fā)-ArkTS語言聲明式UI描述

    ArkTS以聲明方式組合和擴展組件來描述應用程序的UI,同時還提供了基本的屬性、事件和子組件配置方法,幫助開發(fā)者實現(xiàn)應用交互邏輯。 一、創(chuàng)建組件 根據(jù)組件構造方法的不同,創(chuàng)建組件包含有參數(shù)和無參數(shù)兩種方式。 說明,創(chuàng)建組件時不需要new運算符。 1.無參數(shù) 如果組

    2024年02月08日
    瀏覽(21)
  • 利用Springboot來驅(qū)動開發(fā)桌面程序

    利用Springboot來驅(qū)動開發(fā)桌面程序

    眾所周知,SpringBoot是一款強大的Javaweb開發(fā)程序,這得益于其構造了一個Spring容器,然后通過依賴注入和控制反轉(zhuǎn),維護起一套Java對象和實例的管理機制,方便開發(fā)者去使用。在web應用開發(fā)的應用中,Springboot在Java層應用非常廣,同樣的,也可以利用SpringBoot來編寫桌面程序。

    2024年02月05日
    瀏覽(16)
  • Electron桌面應用開發(fā)基礎

    Electron 是一種基于 Chromium 和 Node.js 的開源框架,可以用于快速構建跨平臺的桌面應用程序。與傳統(tǒng)的桌面應用程序不同,Electron 應用程序使用 HTML、CSS 和 JavaScript 技術 棧來實現(xiàn)界面設計和業(yè)務邏輯,并且具有良好的跨平臺性能和擴展性。 跨平臺性:Electron 可以在 Windows、M

    2024年02月08日
    瀏覽(23)
  • vue開發(fā)桌面exe應用

    Electron-vue Electron-vue搭建vue全家桶+Element UI客戶端(一) 如何使用Vue.js構建桌面應用程序

    2024年02月10日
    瀏覽(17)
  • C# 開發(fā)桌面應用簡單介紹

    C# 開發(fā)桌面應用簡單介紹

    一. C#使用場景介紹 C#是微軟公司發(fā)布的一種由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言、運行于.NET Framework和.NET Core(完全開源,跨平臺)之上的高級程序設計語言。 二.?開發(fā)流程 1.?創(chuàng)建項目:打開Visual Studio后右側(cè)選擇“創(chuàng)建新項目”,然后選擇“C#?Windows窗體應用”即可創(chuàng)建桌

    2024年02月05日
    瀏覽(17)
  • 某軟件的一個模塊的需求規(guī)格說明書中描述【軟件測試題目】

    某軟件的一個模塊的需求規(guī)格說明書中描述【軟件測試題目】

    某軟件的一個模塊的需求規(guī)格說明書中描述 (1)年薪制員工:嚴重過失,扣年終風險金的4%;過失,扣年終風險金的2% (2)非年薪制員工:嚴重過失,扣除當月薪資的8%;過失,扣除當月薪資的4% (1)分析原因及結果 原因 c1:年薪制員工 c2:非年薪制員工 c3:過失 c4:嚴重過失

    2024年02月08日
    瀏覽(24)
  • 桌面應用程序開發(fā)攻略(初步了解)

    ????????桌面應用開發(fā) 是指為桌面計算機或其他類似設備(如服務器)開發(fā)軟件應用程序的過程。桌面應用通常是獨立于瀏覽器運行的,并且可以在操作系統(tǒng)的桌面或應用程序菜單中找到。桌面應用可以使用各種編程語言開發(fā),包括C++、Java、C#和Python等。桌面應用的開發(fā)

    2024年02月09日
    瀏覽(22)
  • 桌面應用開發(fā)有哪些主流框架?

    桌面應用開發(fā)有哪些主流框架?

    受益于開源技術的發(fā)展,以及響應快速開發(fā)的實際業(yè)務需求,跨平臺開發(fā)不僅限于移動端跨平臺,桌面端雖然在市場應用方面場景不像移動端那么豐富,但也有市場的需求。 相對于個人開發(fā)者而言,跨平臺框架的使用,主要為了滿足以下三個主要能力: 生產(chǎn)力提升 :框架能

    2024年02月05日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包