All Projects → longxiaonan → java-sea

longxiaonan / java-sea

Licence: other
打造一个基于springboot的java全知识栈项目。 都是总结好的代码,可以拿去即用。

Programming Languages

javascript
184084 projects - #8 most used programming language
java
68154 projects - #9 most used programming language
HTML
75241 projects
CSS
56736 projects
Asymptote
17 projects
FreeMarker
481 projects

JAVA SEA

github经常访问不上,且速度慢,所以把项目迁移到gitee了,github这里不再维护: https://gitee.com/longxiaonan0505/java-sea

img

概述

希望打造一个基于springboot的java全知识栈项目,都是总结好的代码,拿去即用,提高开发效率。因为整个java的知识体系很庞大,为了方便整理,所以一些设计到的知识点都整合到了该项目下,项目模块较多,每个知识点都是一个独立的项目(具体看pom的配置), 请在IDE中单独打开子模块中的项目,直接打开java-sea项目会加载和编译较长时间。还可以用sourcegraph插件查看相关代码后copy到直接本地进行调试。后期如果代码过大会考虑每个知识点独立成一个项目,该项目作为索引。

项目下很多知识点未完善,正在持续优化中。

Q:为什么都整合在一起,不觉得乱吗?

A:不整合的话,那么每个知识点一个项目,不知道需要几十个还是上百个项目,项目之间管理太乱了。

Q:为什么按照这种层级(项目目录结构)进行划分?

A:这个是按照我对基于springboot框架对整个java技术栈的理解来的,每个人理解不一样可能有些目录结构会比较奇怪。欢迎一起研究讨论。

Q:项目这么庞大臃肿编译岂不是会很卡?

A:整个项目确实大,不过每个子项目的demo都是可以直接运行的。我在本地打开整个java-sea项目也不会有这个问题,可能初次编译的时候和下载依赖需要些时间。

​ 项目最大的用途是用于参考,当需要某个需求的时候,我就会来找相关项目,如果有就直接调试和使用,如果没有就新增demo到项目。

​ 我使用了sourcegraph插件,该插件能够在线查看github项目,非常方便,gitee没了解相关插件。如果不是很必要,我都是start后直接用这个插件查看代码了,都不用去fuck和clone到本地。

1595998438162

1595998451666

1595998461700

项目目录结构

子模块下是针对各个知识点的项目。各个模块下的项目无直接依赖。

javasea-base

javase基础知识测试的demo,具有参考意义。当知识点忘记细节时找的相关目录执行下即可看到结果。

javasea-cache

java缓存相关的项目, 在service层通过注解@Cacheable@CacheEvict实现。

  • javasea-cache-ehcache

    通过ehcache实现缓存

  • javasea-cache-redis

    通过redis实现缓存

javasea-file

头像是张良,他技能是放几本书(file)作为法阵,大招还是用线连着敌人定住人(io)

文件或者文档相关处理项目,基本IO流项目

  • javasea-file-archive

    未完成的文件归档项目,计划是设计一个通用的文件归档中间件,将收集的数据,已对象或json的格式,归档到不同的数据库或者搜索引擎中。例如收集车辆车机的数据到mongodb,elasticsearch和mysql中。

  • javasea-file-download

    实现文件下载的demo项目。

  • javasea-file-excel

    实现excel操作的项目,还需要集成和整理如下功能:

    1. poi基本操作的demo
    2. 通过xml格式解析excel的demo
    3. 集成阿里的easyexcel的demo
    4. 测试大数据量的excel导入
    5. 通用的报表导出功能。
  • javasea-file-upload

    实现文件上传的demo项目。

javasea-lot

物联网相关测试demo

  • javasea-lot-opc-utgard

    opc的测试demo,opc虽然是比较旧的工业化控制技术,但是我也把它归属到了物联网中的一部分。

javasea-mq

消息队列相关的项目

  • javasea-mq-rabbitmq

    rabbitmq的基本测试

javasea-nio

  • javasea-nio-netty

    netty测试的demo,实现了netty服务端和客户端简单通信。

  • javasea-nio-netty2

    收集github中的netty整合项目,据说能开箱即用,未测试。

javasea-nosql

springboot整合nosql的项目项目集

javasea-orm

springboot集成orm相关框架

  • javasea-orm-mybatisgenerator-pomplugin

    springboot集成mybatis,且通过pom插件的方式集成mybatis-generator代码生成器。

  • javasea-orm-mybatisplus

    mybatis-plus是目前很火的一个mybatis的扩展,极大的简化了对ORM的操作,该项目集成了mybatis-plus,且提供了一些curd的相关示例。

  • javasea-orm-pagehelper

    springboot集成github的分页插件。

  • javasea-orm-springdata-multidatasource

    springboot实现多数据源测试demo。

javasea-patterns

通过java实现的设计模式示例

javasea-rbac

java后台的权限模块相关项目,如shiro,springdata,sso,oauth2等相关技术的demo。

javasea-scene

在一些特定的场景下需要的一些功能

javasea-schedule

任务调度相关项目,将整合quartz,XXL-Job, elastic-job

javasea-volcano

该项目是基于springboot和SSM后台的开发脚手架,已经整合了工具类,通过mybatis-plus实现ORM操作。定义了异常出来,参数校验等示例。

  • javasea-volcano-base

    脚手架项目测试的demo,使用该脚手架时,参考该demo配置即可。

  • javasea-volcano-common

    脚手架项目的common项目,整合了工具类,swagger等常用工具。

javasea-web

基于springboot和spring在web开发时常用的一些功能

  • javasea-web-aspect

    面向切面编程AOP测试等

  • javasea-web-config

    springboot配置加载demo

  • javasea-web-devtools

    springboot热部署demo

  • javasea-web-junit

    springboot通过junit单元测试demo

  • javasea-web-log

    springboot实现log的demo,且能将log保存到mysql中。

  • javasea-web-rxjava

    springboot整合rxjava,实现异步编程的demo

  • javasea-web-schedule

    springboot实现的各种job调度的demo。

  • javasea-web-springsession

    两个不同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

  • javasea-workflow-activiti

    activiti工作流项目

运行项目

  1. git clone https://github.com/longxiaonan/java-sea.git

  2. 建议使用 Intellij IDEA 打开,并确保你的 Intellij IDEA 下载了 lombok 插件。

  3. 打开项目时,在IDEA中请独立打开二级项目,或者别的独立的子模块。请不要一下子打开父项目java-sea,因为java-sea是整个java体系的全知识栈项目,已经收集了30多个子项目,第一次加载需要下载依赖花费很长时间。有耐心的可以试试,哈哈。

    下图是打开java-sea中的其中一个子模块项目示例:

  4. 1568773988059

1568773988059

  1. 里面的大部分目录都是基于springboot构建,只需要运行相应子项目下的Application.java即可。

参与项目

项目很多地方未完善,我一个人的精力时间有限,如果你愿意跟我一起来完善,我将非常荣幸。

命名规范

项目名,子项目名,包名,启动类名,readme名称规范:

创建子项目

选择相应的项目,通过新建模块的方式创建子项目。二级项目和三级项目都是该方式进行创建

pom配置规范

  1. 请将添加的依赖分类整理放好,添加相关的备注。
  2. 项目尽量配置独立的依赖。使之就算单独用IDE打开也能独立运行。

相关说明

已经打开的java-sea项目卡顿问题

在idea中关闭不启用(加载)的module。

将要加载项目移到右边即可。

每个节点中的子项目都可以独立运行。

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].