# JavaWeb **Repository Path**: tank2140896/JavaWeb ## Basic Information - **Project Name**: JavaWeb - **Description**: Java-23、MySQL-8.0.30、SpringBoot-3.5.3、SpringCloud-2025.0.0 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/tank2140896/JavaWeb - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-06-30 - **Last Updated**: 2025-06-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, SpringBoot, SpringCloud ## README # 基础框架 V1.1.6 本项目【必须】: 1、jdk23+ 2、maven3.9.9+ 3、redis3.2.100+ 4、mysql8.0.30+ 本项目【推荐】: ~~1、node(如不安装,将无法使用前端Angular相关功能)~~ 2、MinIO(如不安装,将无法使用文件相关功能,同时文件相关功能还有一些BUG待修复中) 其它: 目前未使用Java9及其以后的版本中的模块化功能来组织项目 # ***近期计划*** 1、升级jdk至24 2、升级SpringBoot和其它jar包至最新版并解决升级后可能出现的各种问题 3、优化代码 # 一、项目启动说明 1、common为大部分后端项目的共有依赖 当新建一个纯净的项目引入common只需要排除默认数据源配置即可: @SpringBootApplication(exclude={DataSourceAutoConfiguration.class}) 2、java-web-admin为后端服务 # 二、项目重要说明 1、本项目的“集大成者”、“主要实践者”参见java-web-admin项目,关于该项目的更多内容,参见doc目录下的《java-web-admin使用指南.docx》 2、本项目有很多不足和BUG(水平有限),因此更新会比较频繁、改动会比较大,请见谅(更新代码时也请同步更新db/init.sql并重新对angular-admin项目npm install) 3、本项目之前的前端框架使用的是angular,UI使用ng-zorro-antd(即ant design for angular),具体参见other/angular-admin项目,react或vue虽然在国内使用最广泛,公司工作中也是用的react或vue,但个人依然坚持使用着angular,主要有以下3点原因 ①希望能给angular开发者、爱好者提供一点帮助、借鉴 ②本人第一个上手的前端框架就是angular ③基于typescript语法的angular与java较像,个人感觉java开发者去写基于typescript语法的angular会更加简单 4、本项目后端几乎所有的增删改查操作都是物理操作(忽略数据库表中的del_flag字段),如果想做逻辑操作(使用数据库表中的del_flag字段)需要重写相关SQL语句 5、本项目所有请求参数校验只是简单的校验了下,有些甚至都没有校验,如有需要请自行增加、修改、优化 6、本项目所有SQL语句均未优化且没有索引等,如有需要请自行优化 7、本项目所有主键都是字符串类型,而不是数字(或数字自增)类型,未来可能会考虑变为数字类型 当是数字类型时需要注意: 数字类型超过16位时,前后端交互时,前端会有精度误差,当然前端转化下或后端转化下就可以了,这里主要是为了避免相互转换的麻烦,但是写入的依然是数字,即类型是字符串类型但是值是数字 前端传字符串后端JAVA依然可以用类似Long封装类型接收,原理就是Long.parseLong不报错即可;同理,数据库查出来数字类型,后端JAVA依然可以用字符串接收,原理就是String.valueOf不报错即可。当然,一般不推荐这么写 大数字前端作为字符串传来,后端JSON解析时建议先转为字符串再转为数字,类似JSONObject.getLong('key')时就会出现精度丢失 对于新、老数据的迁移、合并,systemNo的值是区分关键,参考SecretUtil的defaultGenUniqueStr方法 8、integration-demo.zip包括了一些常用技术与SpringBoot组合的示例,不同版本写法会有差异(hbase、kafka、netty、solr、mongodb、websocket(SpringBoot版和Netty版)、elasticsearch、neo4j、barcode(一维条形码)、kaptcha(二维码)、邮件发送、redis、restTemplate、quartz(分布式)定时任务、文件上传下载、activiti、camunda、swagger2、qq、wechat、poi-excel、HTTPS和HTTP2.0、本项目作为第三方的接入(Oauth2)、接口对接(对方请求我们的数据)、中文分词器、轻量级文件服务器minio、FastDFS、SpringBatch批处理、JNI、webservice、实体类字段脱敏处理、请求参数分组校验) 9、注册中心有很多,比如eureka、zookeeper、consul、nacos等,这些不在本项目范围内,请自行研究,本项目用的是eureka 10、微服务还有其它组件,如:SpringCloudConfig、SpringCloudSleuth、SpringCloudSecurity等,这些不在本项目范围内,请自行研究 11、自动化运维,如:docker、k8s、jenkins等,这些不在本项目范围内,请自行研究 12、关于文件系统,想了好久,暂时先使用MinIO # 三、开发计划 1、SpringBoot升级至3.5.3,SpringCloud升级至2025.0.0,解决升级后可能出现的各种问题 2、持续优化迭代各已有功能 3、优化、增加常用算法(主要基于算法导论) # 四、后期侧重点 数学、算法、人工智能、机器学习、编程语言底层实现 # 五、其它 1、批量启动服务,如在windows上类似可以写为: E: cd E:\minio set MINIO_ROOT_USER=minioadmin set MINIO_ROOT_PASSWORD=minioadmin start cmd /c "minio.exe server E:\minio\data --console-address ":9001"" C: cd C:\Users\admin\Desktop start cmd /c "title s1 && java -jar s1.jar" start cmd /c "title s2 && java -jar s2.jar" start cmd /c "title s3 && java -jar s3.jar" 如果本机安装了多版本的JDK,也可以指定JDK,如:start cmd /c "title s1 && C:\Java\jdk21\bin\java -jar s1.jar" 2、一些地址参考 https://start.spring.io https://angular.io/api https://spring.io/projects/spring-cloud https://angular.io/start https://update.angular.io https://ng.ant.design/docs/introduce/en https://www.npmjs.com