JavaFx+springboot+mybatis+bootstrap......实现桌面应用维修之家(校园维修)附带源码

博客不常在,有问题可以github交流一下

源码github地址 https://github.com/851543/ServiceHomeJavaFx.git

一、 开始介绍

1. 开始介绍

大家好,时隔半年我又再次更新博客,虽然可以说很久或者不久,废话不多说,直接步入主题。

我目前在校,前几天有个生产课出了个程序设计系统,我寻思简简单单,可是它限制了使用的技术范围,也就是实现前后端不分离桌面应用,我寻思着也没有做过呀,所以我在网上参考一些建议和技术文案,最终决定使用JavaFx+springboot+mybatis+bootstrap等等实现,大部分技术我熟悉,就是JavaFx不熟悉,JavaFx是 Oracle 公司提供的技术栈,同时JavaSwing的升级版,我们知道学习新的技术是好的,但是学了用不了几次等于没学,学习新技术需要时间和耐心,可是我现在既没有时间更没有耐心,所以我将快速完成程序设计,仅仅是为了作业。

2. 系统概述

校园维修系统是一个旨在提高学生生活质量的在线维修平台。该系统允许学生通过移动设备或电脑向学校报告各种维修需求,并跟踪维修进度。同时,为学校提供一个有效的维修管理工具,优化资源分配和维修流程。

3. 技术架构

本系统采用JavaFX作为前端框架,Spring Boot作为后端框架,MyBatis用于数据库操作,而Bootstrap则提供了响应式UI组件。这种技术栈的选择考虑到了以下因素:

  • JavaFX:为学生提供直观易用的桌面和移动应用界面。
  • Spring Boot:简化后端开发,快速实现功能模块。
  • MyBatis:高效处理数据库操作,确保系统性能。
  • Bootstrap:提供响应式布局,确保跨平台兼容性。

JavaFX

JavaFX是一个用于构建桌面应用程序的现代化GUI工具包,主要由Sun Microsyste

  • 主要特点:
    • 使用Java语言编写
    • 提供丰富的UI组件,如按钮、文本字段等
    • 支持动画效果
    • 可以创建响应式用户界面
  • 适用场景:开发桌面应用程序、游戏、多媒体应用等

Spring Boot

Spring Boot是一款基于Spring框架的快速开发工具包,专注于简化企业级应用开发过程。

  • 主要特点:
    • 自动配置功能,减少手动配置代码
    • 内置嵌入式服务器,简化部署
    • 强大的依赖管理
    • 支持热部署
  • 适用场景:开发微服务、Web应用、企业级后端系统等

MyBatis

MyBatis是一个开源的Java持久层框架,它提供了简单的SQL映射功能。

  • 主要特点:
    • 简化数据库操作,减少冗余代码
    • 支持自定义SQL语句
    • 提供XML或注解方式的配置
    • 高性能,适合处理大量数据
  • 适用场景:需要与数据库交互的Java应用程序开发

Bootstrap

Bootstrap是一个免费的、开源的前端框架,由Twitter开发并维护。

  • 主要特点:
    • 提供预构建的CSS和JS组件
    • 响应式设计,适配不同设备屏幕尺寸
    • 简单易用的类名系统
    • 社区活跃,持续更新
  • 适用场景:快速开发响应式网站、Web应用的前端部分

4. 技术整合

虽然这四种技术各自强大,但它们并不常常一起使用。在实际项目中,你可能会选择其中一种或几种技术来满足你的需求。例如:

  • 如果你正在开发一个桌面应用,可以考虑使用JavaFX作为GUI框架。
  • 对于后端开发,Spring Boot是一个很好的选择。
  • 数据库操作可以使用MyBatis。
  • 前端UI可以采用Bootstrap。

我没有系统学习过JavaFX+springboot组合,都是现学现用,有什么不对的地方,大家指教!

注:最好环境版本和我一致,不一致有各种问题 我的版本

springboot 2.1.4.RELEASE

mysql 8.0

JDK 1.8

5. 需求文档

二、开始项目

1. 创建项目

这里我使用的是idea21版 git管理代码 github代码仓库 

idea=>file=>name=>porject

由于使用springboot自然就用maven管理依赖或者自己下载在项目目录,maven的使用自行了解。

这里我使用maven 因为我赖 点击Next Name项目名 改成自己想要的项目名即可 点击Finish

Maven依赖坐标 pom.xml

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.1.4.RELEASE</version>
    </parent>

    <groupId>com.hello.world</groupId>
    <artifactId>ServiceHomeJavaFx</artifactId>
    <version>0.0.1</version>

    <name>ServiceHome</name>
    <description>JavaFx</description>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>



        <!--    mvn install:install-file -DgroupId=gn -DartifactId=GNCalendar -Dversion=v1.0 -Dpackaging=jar -Dfile=E:\idea\project\Java\ServiceHomeJavaFx\lib\GNCalendar-1.0-alpha.jar-->

        <!--    mvn install:install-file -DgroupId=gn -DartifactId=GNButton -Dversion=v1.1.0 -Dpackaging=jar -Dfile=E:\idea\project\Java\ServiceHomeJavaFx\lib\GNButton-1.1.0.jar-->

        <!--    mvn install:install-file -DgroupId=gn -DartifactId=GNCarousel -Dversion=v2.1.5 -Dpackaging=jar -Dfile=E:\idea\project\Java\ServiceHomeJavaFx\lib\GNCarousel-2.1.5.jar-->

        <!--    mvn install:install-file -DgroupId=gn -DartifactId=GNDecorator -Dversion=v2.1.2-alpha -Dpackaging=jar -Dfile=E:\idea\project\Java\ServiceHomeJavaFx\lib\GNDecorator-2.1.2-alpha.jar-->

        <!--    mvn install:install-file -DgroupId=gn -DartifactId=GNAvatarView -Dversion=v1.0-rc -Dpackaging=jar -Dfile=E:\idea\project\Java\ServiceHomeJavaFx\lib\GNAvatarView-1.0-rc.jar-->
        <dependency>
            <groupId>gn</groupId>
            <artifactId>GNAvatarView</artifactId>
            <version>v1.0-rc</version>
        </dependency>
        <dependency>
            <groupId>gn</groupId>
            <artifactId>GNButton</artifactId>
            <version>v1.1.0</version>
        </dependency>
        <dependency>
            <groupId>gn</groupId>
            <artifactId>GNCalendar</artifactId>
            <version>v1.0</version>
        </dependency>
        <dependency>
            <groupId>gn</groupId>
            <artifactId>GNCarousel</artifactId>
            <version>v2.1.5</version>
        </dependency>
        <dependency>
            <groupId>gn</groupId>
            <artifactId>GNDecorator</artifactId>
            <version>v2.1.2-alpha</version>
        </dependency>

        <dependency>
            <groupId>org.fxmisc.richtext</groupId>
            <artifactId>richtextfx</artifactId>
            <version>0.10.7</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/com.jfoenix/jfoenix -->
        <dependency>
            <groupId>com.jfoenix</groupId>
            <artifactId>jfoenix</artifactId>
            <version>8.0.7</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.controlsfx/controlsfx -->
        <dependency>
            <groupId>org.controlsfx</groupId>
            <artifactId>controlsfx</artifactId>
            <version>8.40.14</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.github.typhon0/AnimateFX -->
        <dependency>
            <groupId>io.github.typhon0</groupId>
            <artifactId>AnimateFX</artifactId>
            <version>1.2.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/de.jensd/fontawesomefx -->
        <dependency>
            <groupId>de.jensd</groupId>
            <artifactId>fontawesomefx</artifactId>
            <version>8.9</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>io.github.fvarrui</groupId>
                <artifactId>javapackager</artifactId>
                <version>1.7.5</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>package</goal>
                        </goals>
                        <configuration>
                            <mainClass>com.token.SpringJavaFxApplication</mainClass>
                            <bundleJre>true</bundleJre>
                            <jrePath>D:\Java\jdk-8\jre</jrePath>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

目录结果 这里我不全部介绍 可百度 fx目录主要来配置JavaFX的东西,template下面主要放fxml文件,fxml是JavaFX的可视化实现,类似与jsp,学过web的,可以对fxml可以看着来,

在这里需要引入开源项目的web项目包 包在项目的lib哪里 这里使用maven导入 选择自己的包路径

<!--    mvn install:install-file -DgroupId=gn -DartifactId=GNCalendar -Dversion=v1.0 -Dpackaging=jar -Dfile=E:\idea\project\Java\ServiceHomeJavaFx\lib\GNCalendar-1.0-alpha.jar-->

<!--    mvn install:install-file -DgroupId=gn -DartifactId=GNButton -Dversion=v1.1.0 -Dpackaging=jar -Dfile=E:\idea\project\Java\ServiceHomeJavaFx\lib\GNButton-1.1.0.jar-->

<!--    mvn install:install-file -DgroupId=gn -DartifactId=GNCarousel -Dversion=v2.1.5 -Dpackaging=jar -Dfile=E:\idea\project\Java\ServiceHomeJavaFx\lib\GNCarousel-2.1.5.jar-->

<!--    mvn install:install-file -DgroupId=gn -DartifactId=GNDecorator -Dversion=v2.1.2-alpha -Dpackaging=jar -Dfile=E:\idea\project\Java\ServiceHomeJavaFx\lib\GNDecorator-2.1.2-alpha.jar-->

<!--    mvn install:install-file -DgroupId=gn -DartifactId=GNAvatarView -Dversion=v1.0-rc -Dpackaging=jar -Dfile=E:\idea\project\Java\ServiceHomeJavaFx\lib\GNAvatarView-1.0-rc.jar-->

使用一些开源JavaFX可视化fxml-css的jar,让项目好看高级,搭建项目完成 启动成功。

2. JavaFX

JavaFX在springboot的组合下,非常方便,在fxml里定义的属性,可以在对应的controller中注入出来,直接使用或者操作,总的来说可以使用经典后端三层架构,控制层,业务层,数据层实现项目fxml=>controller=>service=>mapper 有兴趣可以直接查询JavaFX官方文档。

3.实体类

我们知道数据实体类对应数据库表,这里我教大家快速构建实体类,在idea的database里面使用了DataGrip可视化工具,远程连接数据库,通过extensions提供的内置工具脚本快速生成数据库表对应的实体类(可自定义)

三、项目核心

1.fxml页面跳转

这里已经封装好了核心 只需要使用即可 利用枚举类实现fxml地址

2.管理员界面

3.学生界面

4.维修员界面

四、项目结束

此项目存在大量重复操作 繁琐 性能低 本人也不是学这个的 勉勉强强为了生产课作业而去实现的

我个人在此不介绍了 有源码在 请参考源码学习

存在问题请github提问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小气大方的阿俊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值