# jc-pineapple **Repository Path**: Jc_1997/jc-pineapple ## Basic Information - **Project Name**: jc-pineapple - **Description**: JC-PINEAPPLE🍍是一个基于领域驱动设计(DDD)原则,通过SpringBoot, SpringCloud-Alibaba构建的轻量级JAVA项目 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-03-22 - **Last Updated**: 2026-01-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JC-PINEAPPLE🍍 ### 介绍 JC-PINEAPPLE🍍是一个基于领域驱动设计(DDD)原则,通过SpringBoot, SpringCloud-Alibaba构建的轻量级JAVA项目 我是谁: 我是Jc, 一名在M厂打螺丝的JAVA开发工程师 为什么做这个项目: 在工作中需要开发ddd的项目,想找一个具体的项目学习,但是相关的项目不多且解释得甚少,所以通过自己对ddd的理解做了这个工程 希望可以通过这个工程让更多人快速构建及上手ddd项目 才疏学浅, 有错误的地方还请多多指出 ### 快速开始 1.部署Nacos, 设置Nacos服务信息 ``` # Nacos配置 spring: cloud: nacos: server-addr: xxx:8848 # Nacos 服务发现地址 discovery: namespace: public # 命名空间,默认是 public # group: DEFAULT_GROUP # 分组,默认是 DEFAULT_GROUP config: namespace: public # 命名空间,默认是 public # group: DEFAULT_GROUP # 分组,默认是 DEFAULT_GROUP username: password: ``` 2.部署Redis, 设置Redis信息 ``` spring: redis: host: xxx port: 6379 ``` 3.部署RocketMQ, 设置RocketMQ信息 ``` # RocketMQ配置 rocketmq: name-server: xxx:9876 # RocketMQ Name Server地址 producer: group: demo-consumer-group consumer: group: demo-consumer-group # 消费者分组 ``` 4.部署xxl-job, 设置xxl-job信息(可选) ``` # XXL-Job配置 xxl: job: admin: addresses: http://xxx:8081/xxl-job-admin # XXL-JOB Admin地址 accessToken: default_token executor: appname: xxl-job-executor-sample # 执行器名称 address: # 执行器地址,默认为空,自动获取 ip: # 执行器IP,默认为空,自动获取 port: 9999 # 执行器端口 logpath: /data/applogs/xxl-job/jobhandler # 日志路径 logretentiondays: 30 # 日志保留天数 ``` 5.执行ddl.sql脚本, 创建数据库表 ``` create table tb_demo ( demo_id bigint not null comment '主键ID' primary key, demo_name varchar(50) null comment '用户名', created_by bigint null comment '创建人ID', created_name varchar(50) null comment '创建人', updated_by bigint null comment '更新人ID', updated_name varchar(50) null comment '更新人', created_time datetime null comment '创建日期', updated_time datetime null comment '更新日期' ) comment '用户信息表'; ``` 6.设置Mysql信息 ``` spring: datasource: url: jdbc:mysql://xxx:3306/ddd_demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC # 数据库连接URL username: # 数据库用户名 password: # 数据库密码 ``` 7.启动[PineappleApplicationStarter.java](jc-pineapple-starter/src/main/java/com/jc/pineapple/starter/PineappleApplicationStarter.java) ### 系统模块 ``` jc-pineapple 项目的根目录 ├── jc-pineapple-api 定义了项目的API接口,作为三方包提供给(同一个注册中心)其它服务依赖使用,包括请求和响应对象、异常类等。 ├── jc-pineapple-application 包含了项目的业务逻辑层,包括服务类和AOP类。 ├── jc-pineapple-core 包含了项目的核心功能,包括API请求和响应对象、领域模型、异常类、插件、仓储接口、工具类和Web类等。 ├── jc-pineapple-domain 包含了项目的领域模型,包括模型类、服务类和扩展类等。 ├── jc-pineapple-facade 包含了项目的门面层,包括API接口、控制器和RPC接口等。 ├── jc-pineapple-gateway 包含了项目的网关层,包括配置类、消息队列和定时任务等。 ├── jc-pineapple-infrastructure 包含了项目的基础设施层,包括缓存、Feign、消息队列、仓储、RPC和线程等。 ├── jc-pineapple-starter 包含了项目的启动类和配置类等。 ├── LICENSE 项目许可证 ├── pom.xml 项目依赖管理 ``` #### 内置功能 1.集成了常用的中间件:Nacos,Redis,RocketMQ,Feign,Mybatis-Plus,xxl-job 2.代码生成, 一键生成Mybatis-plus的CRUD代码 3.抽象了一些公用的基础对象, 如:BaseDomain #### 下一步 1.制作开发规范文档 2.增加项目架构图 3.DDD项目脚手架 4....