From b5658b14094606b2f5b429351ad45368cebb4177 Mon Sep 17 00:00:00 2001 From: zhangmeng <1334717033@qq.com> Date: Wed, 15 Feb 2023 17:08:22 +0800 Subject: [PATCH] =?UTF-8?q?2023=E5=B9=B42=E6=9C=8815=E6=97=A517:08:06?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 39 ++ pom.xml | 557 ++++++++++++++++++ .../tools/JavaFxToolsApplication.java | 16 + .../tools/controller/HomeController.java | 107 ++++ .../tools/controller/Md5Controller.java | 42 ++ .../controller/SpringSecurityController.java | 41 ++ .../zhangmeng/tools/utils/EncryptUtils.java | 24 + .../zhangmeng/tools/utils/ResourcesUtils.java | 43 ++ .../com/zhangmeng/tools/views/HomeView.java | 20 + src/main/resources/application.yml | 135 +++++ src/main/resources/fxml/home.fxml | 38 ++ src/main/resources/fxml/md5.fxml | 19 + src/main/resources/fxml/spring-security.fxml | 17 + src/main/resources/logback-spring.xml | 93 +++ .../tools/JavaFxToolsApplicationTests.java | 13 + 15 files changed, 1204 insertions(+) create mode 100644 .gitignore create mode 100644 pom.xml create mode 100644 src/main/java/com/zhangmeng/tools/JavaFxToolsApplication.java create mode 100644 src/main/java/com/zhangmeng/tools/controller/HomeController.java create mode 100644 src/main/java/com/zhangmeng/tools/controller/Md5Controller.java create mode 100644 src/main/java/com/zhangmeng/tools/controller/SpringSecurityController.java create mode 100644 src/main/java/com/zhangmeng/tools/utils/EncryptUtils.java create mode 100644 src/main/java/com/zhangmeng/tools/utils/ResourcesUtils.java create mode 100644 src/main/java/com/zhangmeng/tools/views/HomeView.java create mode 100644 src/main/resources/application.yml create mode 100644 src/main/resources/fxml/home.fxml create mode 100644 src/main/resources/fxml/md5.fxml create mode 100644 src/main/resources/fxml/spring-security.fxml create mode 100644 src/main/resources/logback-spring.xml create mode 100644 src/test/java/com/zhangmeng/tools/JavaFxToolsApplicationTests.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cc29507 --- /dev/null +++ b/.gitignore @@ -0,0 +1,39 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +.mvn +mvnw.cmd +mystyle-java-fx-tools.iml + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +/logs/ diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..97cc888 --- /dev/null +++ b/pom.xml @@ -0,0 +1,557 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.5.3 + + + com.zhangmeng + mystyle-java-fx-tools + 0.0.1-SNAPSHOT + mystyle-java-fx-tools + mystyle-java-fx-tools + + + 17 + 17 + 4.1.48.Final + 1.2.75 + 0.9.1 + 1.2.5 + 2.8.0 + 2.0.8 + 1.6.2 + 1.13 + 3.2.1 + 3.9.1 + 1.7 + 3.17 + 2.1.5 + 1.3.0 + 5.5.7 + 2.8.5 + + 2.8.0 + 3.11 + 1.15 + 3.2.2 + 1.4 + 2.9.0 + 1.9.4 + + 1.27.0.0 + 0.62.2 + 2.5 + + + + + + org.springframework.boot + spring-boot-starter-security + + + + mysql + mysql-connector-java + runtime + + + + org.springframework.boot + spring-boot-starter-data-jdbc + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + org.springframework.boot + spring-boot-starter-websocket + + + + com.github.whvcse + easy-captcha + ${captcha.version} + + + + org.springframework.boot + spring-boot-starter-test + + + + tk.mybatis + mapper-spring-boot-starter + ${tk.mybatis.version} + + + com.github.pagehelper + pagehelper-spring-boot-starter + ${pagehelper.version} + + + cn.hutool + hutool-all + ${hutool.version} + + + commons-io + commons-io + ${commons-io.version} + + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + + commons-codec + commons-codec + ${commons-codec.version} + + + + commons-collections + commons-collections + ${commons-collections.version} + + + + commons-fileupload + commons-fileupload + ${commons-fileupload.version} + + + + org.apache.commons + commons-pool2 + ${commons-pool2.version} + + + + commons-beanutils + commons-beanutils + ${commons-beanutils.version} + + + io.netty + netty-all + ${netty.version} + + + com.alibaba + fastjson + ${fastjson.version} + + + io.jsonwebtoken + jjwt + ${jwt.version} + + + net.oschina.zcx7878 + fastdfs-client-java + ${fastdfs-client-java.version} + + + io.springfox + springfox-swagger2 + ${swagger.version} + + + io.springfox + springfox-bean-validators + ${swagger.version} + + + io.springfox + springfox-swagger-ui + ${swagger.version} + + + + + com.github.xiaoymin + knife4j-spring-boot-starter + ${knife4j.version} + + + + it.sauronsoftware + jave + 1.0.2 + + + org.springframework + spring-test + 5.3.5 + compile + + + + org.bytedeco + javacpp + 1.5.2 + + + org.bytedeco + javacv + 1.5.2 + + + org.bytedeco + opencv-platform + 4.1.2-1.5.2 + + + org.bytedeco + ffmpeg-platform + 4.2.1-1.5.2 + + + + + + com.alibaba + druid-spring-boot-starter + ${druid.version} + + + + + com.drewnoakes + metadata-extractor + 2.16.0 + + + org.apache.xmlgraphics + batik-codec + ${apache.xmlgraphics.version} + + + org.apache.xmlgraphics + batik-css + ${apache.xmlgraphics.version} + + + org.apache.xmlgraphics + batik-svg-dom + ${apache.xmlgraphics.version} + + + org.apache.xmlgraphics + batik-svggen + ${apache.xmlgraphics.version} + + + + + com.baomidou + dynamic-datasource-spring-boot-starter + ${dynamic.verion} + + + + com.github.oshi + oshi-core + ${oshi.version} + + + org.apache.poi + poi + ${poi.version} + + + + + org.mybatis + mybatis-typehandlers-jsr310 + 1.0.2 + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + 2.9.7 + + + + commons-net + commons-net + 3.6 + + + + + com.google.zxing + core + 3.3.3 + + + com.google.zxing + javase + 3.3.3 + + + + + com.google.code.gson + gson + ${gson-version} + + + + + + + org.zeroturnaround + zt-zip + 1.14 + + + + + + net.coobird + thumbnailator + 0.4.13 + + + + + + + com.twelvemonkeys.imageio + imageio-jpeg + 3.7.0 + + + + com.twelvemonkeys.imageio + imageio-tiff + 3.7.0 + + + + + + + com.lowagie + itext + 4.2.1 + + + + fr.opensagres.xdocreport + org.apache.poi.xwpf.converter.pdf + 1.0.6 + + + + net.sourceforge.jchardet + jchardet + 1.0 + + + + org.apache.poi + poi-scratchpad + 5.0.0 + + + + + + ws.schild + jave-all-deps + 3.1.1 + + + + + + + com.vladsch.flexmark + flexmark + ${flexmark.version} + + + + + us.codecraft + webmagic-core + 0.7.5 + + + + us.codecraft + webmagic-extension + 0.7.5 + + + + org.springframework.boot + spring-boot-starter-tomcat + provided + + + + com.arcsoft.face + arcsoft-sdk-face + 3.0.0.0 + + + + + com.atlassian.commonmark + commonmark + 0.15.2 + + + + com.atlassian.commonmark + commonmark-ext-heading-anchor + 0.15.2 + + + + com.atlassian.commonmark + commonmark-ext-gfm-tables + 0.15.2 + + + + fr.brouillard.oss + commonmark-ext-notifications + 1.0.0 + + + + net.java.dev.jna + jna + 4.1.0 + + + + + com.artofsolving + jodconverter + 2.2.1 + + + + org.springframework.boot + spring-boot-starter-actuator + + + io.micrometer + micrometer-registry-prometheus + + + + + com.aliyun + aliyun-java-sdk-core + 4.6.0 + + + + + com.aliyun + aliyun-java-sdk-dysmsapi + 2.2.1 + + + + net.sourceforge.tess4j + tess4j + 3.4.0 + + + com.sun.jna + jna + + + + + + + io.minio + minio + 8.3.7 + + + com.squareup.okhttp3 + okhttp + + + + + + com.squareup.okhttp3 + okhttp + 4.8.1 + + + + joda-time + joda-time + ${joda-time.version} + + + + + org.openjfx + javafx-controls + 17.0.1 + + + + org.openjfx + javafx-base + 17.0.1 + + + + org.openjfx + javafx-graphics + 17.0.1 + + + + org.openjfx + javafx-fxml + 17.0.1 + + + + org.openjfx + javafx-web + 17.0.1 + + + + org.openjfx + javafx-media + 17.0.1 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + diff --git a/src/main/java/com/zhangmeng/tools/JavaFxToolsApplication.java b/src/main/java/com/zhangmeng/tools/JavaFxToolsApplication.java new file mode 100644 index 0000000..f75fe62 --- /dev/null +++ b/src/main/java/com/zhangmeng/tools/JavaFxToolsApplication.java @@ -0,0 +1,16 @@ +package com.zhangmeng.tools; + +import com.zhangmeng.tools.views.HomeView; +import javafx.application.Application; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class JavaFxToolsApplication { + + public static void main(String[] args) { +// SpringApplication.run(JavaFxToolsApplication.class, args); + Application.launch(HomeView.class); + } + +} diff --git a/src/main/java/com/zhangmeng/tools/controller/HomeController.java b/src/main/java/com/zhangmeng/tools/controller/HomeController.java new file mode 100644 index 0000000..9c20126 --- /dev/null +++ b/src/main/java/com/zhangmeng/tools/controller/HomeController.java @@ -0,0 +1,107 @@ +package com.zhangmeng.tools.controller; + +import com.zhangmeng.tools.utils.ResourcesUtils; +import javafx.beans.property.SimpleDoubleProperty; +import javafx.beans.property.SimpleObjectProperty; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.fxml.FXML; +import javafx.fxml.FXMLLoader; +import javafx.scene.Node; +import javafx.scene.control.Button; +import javafx.scene.control.ListView; +import javafx.scene.control.SplitPane; +import javafx.scene.control.TextField; +import javafx.scene.layout.AnchorPane; +import javafx.scene.layout.BorderPane; + +import java.io.IOException; +import java.io.Serializable; +import java.util.Arrays; + +public class HomeController implements Serializable { + + private SimpleObjectProperty menus = new SimpleObjectProperty<>(); + + private SimpleDoubleProperty width = new SimpleDoubleProperty(0.0); + private SimpleDoubleProperty height = new SimpleDoubleProperty(0.0); + private AnchorPane root; + + @FXML + private ListView listView; + + @FXML + private SplitPane splitPane; + + @FXML + public void initialize() { + init(); + listView.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> { + if (newValue != null) { + if (newValue.getIndex() == 0 ){ + md5(); + } + if (newValue.getIndex() == 1 ){ + spring(); + } + } + }); + } + + + public void init() { + ResourcesUtils.Menu[] values = ResourcesUtils.Menu.values(); + ObservableList list = FXCollections.observableArrayList(); + list.addAll(Arrays.asList(values)); + listView.setItems(list); + + md5(); + } + + private void spring(){ + try { + root = FXMLLoader.load(ResourcesUtils.getResource("spring-security")); + } catch (IOException e) { + e.printStackTrace(); + } + common_method(); + } + + private void common_method(){ + splitPane.getItems().remove(1); + splitPane.getItems().add(1, root); + root.widthProperty().addListener((observable, oldValue, newValue) -> { + if (newValue != null) { + double width = splitPane.getWidth(); + HomeController.this.width.set(width); + } + }); + root.heightProperty().addListener((observable, oldValue, newValue) -> { + if (newValue != null) { + double height = splitPane.getHeight(); + HomeController.this.height.set(height); + } + }); + + this.width.addListener((observable, oldValue, newValue) -> { + HomeController.this.root.setPrefWidth(newValue.doubleValue() - listView.getWidth()); + }); + + this.height.addListener((observable, oldValue, newValue) -> { + HomeController.this.root.setPrefHeight(newValue.doubleValue() - listView.getHeight()); + }); + } + + private void md5(){ + //默认选择第一个 + listView.getSelectionModel().select(0); + try { + root = FXMLLoader.load(ResourcesUtils.getResource("md5")); + } catch (IOException e) { + e.printStackTrace(); + } + common_method(); + } +} \ No newline at end of file diff --git a/src/main/java/com/zhangmeng/tools/controller/Md5Controller.java b/src/main/java/com/zhangmeng/tools/controller/Md5Controller.java new file mode 100644 index 0000000..1875bc2 --- /dev/null +++ b/src/main/java/com/zhangmeng/tools/controller/Md5Controller.java @@ -0,0 +1,42 @@ +package com.zhangmeng.tools.controller; + +import com.zhangmeng.tools.utils.EncryptUtils; +import javafx.fxml.FXML; +import javafx.scene.control.*; +import javafx.stage.Modality; + +public class Md5Controller { + + @FXML + private Button button; + + @FXML + private TextField text_filed; + + @FXML + private TextArea md5_32; + + @FXML + private TextArea md5_16; + + @FXML + public void initialize() { + button.setOnAction(event -> { + String text = text_filed.getText(); + if (text.length() == 0){ + alert(); + return; + } + md5_32.setText(EncryptUtils.md5(text)); + md5_16.setText(EncryptUtils.md5_16(text)); + }); + } + + private void alert(){ + Alert alert = new Alert(Alert.AlertType.WARNING); + alert.initModality(Modality.APPLICATION_MODAL); + alert.setContentText("请输入将要加密的字符!"); + alert.setHeaderText(null); + alert.show(); + } +} diff --git a/src/main/java/com/zhangmeng/tools/controller/SpringSecurityController.java b/src/main/java/com/zhangmeng/tools/controller/SpringSecurityController.java new file mode 100644 index 0000000..25bf3ae --- /dev/null +++ b/src/main/java/com/zhangmeng/tools/controller/SpringSecurityController.java @@ -0,0 +1,41 @@ +package com.zhangmeng.tools.controller; + +import com.zhangmeng.tools.utils.EncryptUtils; +import javafx.fxml.FXML; +import javafx.scene.control.Alert; +import javafx.scene.control.Button; +import javafx.scene.control.TextArea; +import javafx.scene.control.TextField; +import javafx.stage.Modality; + +public class SpringSecurityController { + + @FXML + private Button button; + + @FXML + private TextField text_filed; + + @FXML + private TextArea textArea; + + @FXML + public void initialize() { + button.setOnAction(event -> { + String text = text_filed.getText(); + if (text.length() == 0){ + alert(); + return; + } + textArea.setText(EncryptUtils.spring_security(text)); + }); + } + + private void alert(){ + Alert alert = new Alert(Alert.AlertType.WARNING); + alert.initModality(Modality.APPLICATION_MODAL); + alert.setContentText("请输入将要加密的字符!"); + alert.setHeaderText(null); + alert.show(); + } +} diff --git a/src/main/java/com/zhangmeng/tools/utils/EncryptUtils.java b/src/main/java/com/zhangmeng/tools/utils/EncryptUtils.java new file mode 100644 index 0000000..e0a5153 --- /dev/null +++ b/src/main/java/com/zhangmeng/tools/utils/EncryptUtils.java @@ -0,0 +1,24 @@ +package com.zhangmeng.tools.utils; + +import cn.hutool.crypto.digest.DigestUtil; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; + +public class EncryptUtils { + + public static String md5(String text){ + return DigestUtil.md5Hex(text); + } + public static String md5_16(String text){ + return DigestUtil.md5Hex16(text); + } + public static String spring_security(String text){ + return new BCryptPasswordEncoder().encode(text); + } + + public static void main(String[] args) { + String text = "123456"; + + System.out.println(md5(text)); + System.out.println(md5_16(text)); + } +} diff --git a/src/main/java/com/zhangmeng/tools/utils/ResourcesUtils.java b/src/main/java/com/zhangmeng/tools/utils/ResourcesUtils.java new file mode 100644 index 0000000..83b93af --- /dev/null +++ b/src/main/java/com/zhangmeng/tools/utils/ResourcesUtils.java @@ -0,0 +1,43 @@ +package com.zhangmeng.tools.utils; + +import java.net.URL; + +public class ResourcesUtils { + + public static final String base_fxml = "/fxml/"; + + public static URL getResource(String name){ + String path = base_fxml + name + ".fxml"; + return ResourcesUtils.class.getResource(path); + } + + public enum Menu{ + Md5("md5加密",0), + SpringSecurity("spring加密",1); + + Menu(String title, int index) { + this.title = title; + this.index = index; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } + + private String title; + private int index; + + } +} diff --git a/src/main/java/com/zhangmeng/tools/views/HomeView.java b/src/main/java/com/zhangmeng/tools/views/HomeView.java new file mode 100644 index 0000000..c0eeea8 --- /dev/null +++ b/src/main/java/com/zhangmeng/tools/views/HomeView.java @@ -0,0 +1,20 @@ +package com.zhangmeng.tools.views; + +import com.zhangmeng.tools.utils.ResourcesUtils; +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Scene; +import javafx.scene.layout.AnchorPane; +import javafx.stage.Stage; + +public class HomeView extends Application { + + @Override + public void start(Stage primaryStage) throws Exception { + AnchorPane fx = FXMLLoader.load(ResourcesUtils.getResource("home")); + Scene scene = new Scene(fx); + primaryStage.setScene(scene); + primaryStage.setTitle("java-fx 工具"); + primaryStage.show(); + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..f44574a --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,135 @@ +server: + port: 8083 +# max-http-header-size: 1000MB +spring: + main: + allow-bean-definition-overriding: true + autoconfigure: + exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure + session: + timeout: 120m + datasource: + druid: + stat-view-servlet: + loginUsername: + loginPassword: + dynamic: + druid: + initial-size: 5 + min-idle: 5 + maxActive: 20 + maxWait: 60000 + timeBetweenEvictionRunsMillis: 60000 + minEvictableIdleTimeMillis: 300000 + validationQuery: SELECT 1 + testWhileIdle: true + testOnBorrow: false + testOnReturn: false + poolPreparedStatements: true + maxPoolPreparedStatementPerConnectionSize: 20 + filters: stat,wall,slf4j + connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 + primary: master #??????????????,?????master + strict: false #??????,??false???. ????????????????????,???????????. + datasource: + # ? ? ? ? + master: + driver-class-name: com.mysql.cj.jdbc.Driver + type: com.alibaba.druid.pool.DruidDataSource + url: jdbc:mysql://127.0.0.1:3306/mystyle-blog?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true + username: root + password: root + jpa: + database: mysql + hibernate: + ddl-auto: update + naming: + physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl + show-sql: true + properties: + hibernate: + dialect: org.hibernate.dialect.MySQL5Dialect + quartz: + properties: + org: + quartz: + scheduler: + instanceName: DefaultQuartzScheduler + instanceId: AUTO + jobStore: + class: org.quartz.impl.jdbcjobstore.JobStoreTX + driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate + tablePrefix: QRTZ_ + isClustered: false + clusterCheckinInterval: 10000 + useProperties: false + threadPool: + class: org.quartz.simpl.SimpleThreadPool + threadCount: 10 + threadPriority: 5 + threadsInheritContextClassLoaderOfInitializingThread: true + job-store-type: jdbc + jdbc: + initialize-schema: never + freemarker: + suffix: .ftl + check-template-location: true + content-type: text/html + charset: UTF-8 + template-loader-path: classpath:/templates/ + cache: false + enabled: true + request-context-attribute: request + mail: + default-encoding: UTF-8 + port: 465 + username: zhang1334717033@foxmail.com + password: gymxczptynubfgih + test-connection: false + host: smtp.qq.com + protocol: smtps + properties: + mail: + smtp: + auth: true + starttls: + enable: true + required: true + rabbitmq: + host: localhost + port: 5672 + username: guest + password: guest + jackson: + date-format: yyyy-MM-dd HH:mm:ss + time-zone: GMT+8 + servlet: + multipart: + max-file-size: 1000MB + max-request-size: 1000MB +pagehelper: + row-bounds-with-count: true + offset-as-page-num: true + page-size-zero: true + reasonable: false + support-methods-arguments: false + params: count=countSql + helper-dialect: mysql +mybatis: + type-aliases-package: com.zhangmeng.modules + configuration: + mapUnderscoreToCamelCase: true + default-enum-type-handler: org.apache.ibatis.type.EnumOrdinalTypeHandler +mapper: + style: normal + enum-as-simple-type: true + identity: MYSQL + check-example-entity-class: true +logging: + config: classpath:logback-spring.xml +log: + level: + root: info + my: info + file-path: logs/admin-server.log + max-size: 30MB diff --git a/src/main/resources/fxml/home.fxml b/src/main/resources/fxml/home.fxml new file mode 100644 index 0000000..9408112 --- /dev/null +++ b/src/main/resources/fxml/home.fxml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/fxml/md5.fxml b/src/main/resources/fxml/md5.fxml new file mode 100644 index 0000000..bb82839 --- /dev/null +++ b/src/main/resources/fxml/md5.fxml @@ -0,0 +1,19 @@ + + + + + + + + + + +