• Monthly Archives: 二月 2020

创建一个基于SpringBoot2.1.x的JavaFX程序

1.创建SpringBoot项目

到 https://start.spring.io/ 创建一个SpringBoot2.1.x项目,解压后使用MyEclipse2015导入为maven项目~

2.引入JavaFX

对SpringBoot入口程序Application进行改造,继承javafx的application类,并引入接口CommandLineRunner, Consumer<Stage>,接着加入如下代码(高亮部分):

然后启动,出现如下界面则为成功:

ac571e727fe9d73b3500c54a3e2117c

 

3.增加预加载页面

在pom.xml加入如下依赖:

 

新增一个启动入口文件如MainApplication.java用于展示欢迎界面,代码如下:

在预加载完成后还要再正式界面中隐藏掉本界面,因此要在原来的application类的stage.show()前面加入如下代码:

然后注释掉原来的application启动类中的main方法:

最后启动刚刚新建的MainApplication.java,便会出现中间界面:

d294a0cca4b571832aaa7b9c70f8363

好了,大功告成。如果还需要引入sqlite数据库,则可以继续往下操作。

4.引入hibernate并使用sqlite数据库

在MainApplication中的 下方加入如下代码,以提示sqlite是否存在:

再pom.xml中加入如下依赖:

 

对原来的Application进行修改(加入高亮部分):

增加sqlite的方言类SQLiteDialect.java:

增加配置文件application.properties用于配置数据库(注意高亮行,要指向刚刚创建的方言类SQLiteDialect.java):

好了,运行MainApplication看看效果:

639fccfb32a10d16ee5a29089e0094f

如图所示,输入sessionFactory不为空,则注入成功,后面大家自由发挥吧!

5.补充:记得指定maven打包时的启动入口

在pom.xml中加入如下高亮代码

大功告成!

使用MyEclipse进行Maven构建时出现501错误

经过分析,是由于自2020年1月15日起,中央存储库不再支持通过纯HTTP进行的不安全通信,并且要求对存储库的所有请求都通过HTTPS进行加密。

于是我们需要在构建过程中所依赖的maven对其settings.xml文件加入以下配置:

但是MyEclipse中如果使用自带的maven,则你会找不到settings.xml来进行配置,所以我从对应MyEclipse2015内置maven对应3.2.1版本源代码中找到了settings.xml文件,拷贝到C:\Users\Administrator\.m2并在mirrors中加入以上配置。

settings ←我配置好的文件在这里下载

接着根据下图只是将MyEclipse中的maven指定为刚刚设置的文件,然后执行 update project 即可~

7024d8405f8c484c4a7a2ee628e89e8

5240b2a4bda21aa8570dd13cb0f241a

 

最后要注意的是,如果使用JDK7或更低版本的话,是不支持TLS1.2的,而maven的中央仓库要求https协议为TLS1.2,此时可以考虑将JDK7升级到JDK8以上,或者将中央仓库改为阿里云的:

如果是在MyEclipse以外的地方遇到TLS版本问题,则可以增加以下参数尝试:

 

nginx要注意的并发配置

单核所能产生的线程数问题

nginx默认只使用cpu的一个核,单核支持的线程数是1024,意味着超过1024就会崩

需要在配置中加上:worker_processes 4 (数字“4”为您所需要使用的核数)

单个文件访问数量的问题

nginx默认只允许单个文件被4096个线程打开,意味着如果nginx的线程超过4096也会崩,哪怕设置CPU核数大于4个

需要在配置中加上:worker_rlimit_nofile 32768

123

close