希望打造一个基于springboot的java全知识栈项目,都是总结好的代码,拿去即用,提高开发效率。因为整个java
的知识体系很庞大,为了方便整理,所以一些设计到的知识点都整合到了该项目下,项目模块较多,每个知识点都是一个独立的项目(具体看pom的配置), 请在IDE中单独打开子模块中的项目,直接打开java-sea
项目会加载和编译较长时间。后期如果代码过大会考虑每个知识点独立成一个项目,该项目作为索引。
项目下很多知识点未完善,正在持续优化中。
子模块下是针对各个知识点的项目。各个模块下的项目无直接依赖。
javase基础知识测试的demo,具有参考意义。当知识点忘记细节时找的相关目录执行下即可看到结果。
java缓存相关的项目, 在service层通过注解@Cacheable
和@CacheEvict
实现。
-
javasea-cache-ehcache
通过ehcache实现缓存
-
javasea-cache-redis
通过redis实现缓存
头像是张良,他技能是放几本书(file)作为法阵,大招还是用线连着敌人定住人(io)
文件或者文档相关处理项目,基本IO流项目
-
javasea-file-archive
未完成的文件归档项目,计划是设计一个通用的文件归档中间件,将收集的数据,已对象或json的格式,归档到不同的数据库或者搜索引擎中。例如收集车辆车机的数据到mongodb,elasticsearch和mysql中。
-
javasea-file-download
实现文件下载的demo项目。
-
javasea-file-excel
实现excel操作的项目,还需要集成和整理如下功能:
- poi基本操作的demo
- 通过xml格式解析excel的demo
- 集成阿里的easyexcel的demo
- 测试大数据量的excel导入
- 通用的报表导出功能。
-
javasea-file-upload
实现文件上传的demo项目。
物联网相关测试demo
-
javasea-lot-opc-utgard
opc的测试demo,opc虽然是比较旧的工业化控制技术,但是我也把它归属到了物联网中的一部分。
消息队列相关的项目
-
javasea-mq-rabbitmq
rabbitmq的基本测试
-
javasea-nio-netty
netty测试的demo,实现了netty服务端和客户端简单通信。
-
javasea-nio-netty2
收集github中的netty整合项目,据说能开箱即用,未测试。
springboot整合nosql的项目项目集
-
springboot整合es项目。
-
javasea-nosql-mongodb
springboot整合mongodb项目
-
javasea-nosql-redis-distributedlocks
redis实现分布式锁
-
javasea-nosql-redis-jedis
jedis方式实现redis
-
javasea-nosql-redis-springdata
基于springboot和springdata实现redis操作
-
javasea-nosql-redis-subscription
通过redis实现消息订阅
springboot集成orm相关框架
-
javasea-orm-mybatisgenerator-pomplugin
springboot集成mybatis,且通过pom插件的方式集成mybatis-generator代码生成器。
-
mybatis-plus是目前很火的一个mybatis的扩展,极大的简化了对ORM的操作,该项目集成了mybatis-plus,且提供了一些curd的相关示例。
-
javasea-orm-pagehelper
springboot集成github的分页插件。
-
javasea-orm-springdata-multidatasource
springboot实现多数据源测试demo。
通过java实现的设计模式示例
-
设计模式基本示例。
-
收集的设计模式在实际项目使用的代码
java后台的权限模块相关项目,如shiro,springdata,sso,oauth2等相关技术的demo。
-
springboot集成spring-security和jwt
-
springboot集成spring-security,jwt和sso
-
imooc网的security课程的代码实践
-
springboot整合shiro
在一些特定的场景下需要的一些功能
-
请求重复提交的场景,代码遗漏,需要补充
-
邮件发送demo
任务调度相关项目,将整合quartz,XXL-Job, elastic-job
该项目是基于springboot和SSM后台的开发脚手架,已经整合了工具类,通过mybatis-plus实现ORM操作。定义了异常出来,参数校验等示例。
-
javasea-volcano-base
脚手架项目测试的demo,使用该脚手架时,参考该demo配置即可。
-
javasea-volcano-common
脚手架项目的common项目,整合了工具类,swagger等常用工具。
基于springboot和spring在web开发时常用的一些功能
-
javasea-web-aspect
面向切面编程AOP测试等
-
javasea-web-config
springboot配置加载demo
-
springboot热部署demo
-
springboot通过junit单元测试demo
-
springboot实现log的demo,且能将log保存到mysql中。
-
javasea-web-rxjava
springboot整合rxjava,实现异步编程的demo
-
springboot实现的各种job调度的demo。
-
两个不同web项目,通过spring session实现session同步
-
javasea-web-template
基于springboot在web开发中使用模板引擎demo。
-
javasea-web-threadpool
基于springboot实现不同的线程池
-
javasea-web-webbase
web开发的基本整合, 请参考更加全面的javasea-volcano项目
-
javasea-web-webflux
springboot整合webflux实现异步编程demo, 待完善。
-
javasea-workflow-activiti
activiti工作流项目
-
建议使用 Intellij IDEA 打开,并确保你的 Intellij IDEA 下载了 lombok 插件。
-
打开项目时,在IDEA中请独立打开二级项目,或者别的独立的子模块。请不要一下子打开父项目
java-sea
,因为java-sea
是整个java体系的全知识栈项目,已经收集了30多个子项目,第一次加载需要下载依赖花费很长时间。有耐心的可以试试,哈哈。下图是打开
java-sea
中的其中一个子模块项目示例:
- 里面的大部分目录都是基于springboot构建,只需要运行相应子项目下的Application.java即可。
项目很多地方未完善,我一个人的精力时间有限,如果你愿意跟我一起来完善,我将非常荣幸。