# pangu-core **Repository Path**: charle_yee/pangu-core ## Basic Information - **Project Name**: pangu-core - **Description**: 盘古核心项目 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 14 - **Forks**: 0 - **Created**: 2022-10-13 - **Last Updated**: 2025-06-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 盘古框架 闲来无事,集成一个框架。这个是个核心服务 业务框架:[pangu-business](https://gitee.com/charle_yee/pangu-business) 建议业务逻辑都放在业务框架里面,核心服务只做核心服务的事情 + 基础包:[douya-common](https://gitee.com/charle_yee/douya-common) 集成了一些常用的工具类,代码生成工具 超链接 + 安全包:[douya-security](https://gitee.com/charle_yee/douya-security) 集成了jwt的安全组件,实现了统一的认证和授权 + 数据中间件包:[douya-middleware](https://gitee.com/charle_yee/douya-middleware) 集成了redis的缓存组件,es的搜索组件 ## 项目结构 对内微服务的调用使用feign调用,对外提供restful接口, feign的接口全部放在api包下用/api 打头,实现类放在application包下,这样可以方便的调用和实体类的维护,api包修改完后,只需要重新deploy api包就可以了 ``` pangu-core ├── douya-common -- 基础包 ├── douya-security -- 安全包 ├── douya-middleware -- 数据中间件包 ├── pangu-business-api -- 业务服务api ├── pangu-core-api -- 核心服务api ├── pangu-core-application -- 核心服务应用 ``` ## 快速开始 ### 1. 依赖 首先要降基础包[douya-common](https://gitee.com/charle_yee/douya-common)(必须), 安全包[douya-security](https://gitee.com/charle_yee/douya-security)(如果不需要接口安全认证不需要), 数据中间件包[douya-middleware](https://gitee.com/charle_yee/douya-middleware)(如果有引入安全包必须引入中间件包) 安装到本地仓库 ### 2. yml配置 + application.yml 为基础配置文件,可以在这里配置一些基础的配置。 + application-dev.yml 为开发环境配置文件,可以在这里配置一些开发环境的配置。 接着配上数据库链接,redis链接,es链接,等等 douya 框架配置讲解 ```yaml douya: common: # 是否开启不带占位符sql打印 true:开启 false:关闭 默认关闭 enable-sql-logger: true security: # 是否开启安全认证 true:开启 false:关闭 默认关闭 enabled: true # 是否开启Debug模式 true:开启 false:关闭 默认关闭 (开启debug模式在请求头中不需要传token,只要带上用户id即可) debug: false # 不需要认证的接口 non-auth-uri: /api/** , /web/sys/user/login # 不需要授权的接口 static-resources-uri: /swagger-ui.html ,/swagger-ui/index.html, /swagger-resources/** , /doc.html # jwt配置 header-token: # jwt加密密钥(可以自定义) secret: c07306b3833142f9a7aeedc1083f61fa # jwt过期时间(单位:分钟) expire-time: 60 # 请求头中的token的key(可以自定义) name: authorization # 缓存中的token的key(可以自定义) token-prefix: coreLogin # 微服务配置(方便本地调试) host: # 对应服务地址 pangu-business: http://127.0.0.1:9091 ``` ### 3. 安全认证的使用 + 1. 需要实现UserDetailsService接口,实现loadUserByUsername方法,这个方法是用来根据用户名查询用户信息的,返回的是UserDetails接口的实现类,这个类是spring security提供的,里面有用户名,密码,权限等信息。 + 2. 获取当前登录用户信息,可以使用SecurityUtils.getCurrentUserDetail(Class t)方法,参数T是UserDetails接口的实现类,这个类是spring security提供的,里面有用户名,密码,权限等信息。 ### 4. WebSocket的使用 + 1. 本项目支持websocket和SockJS,可以根据自己的需求选择。 + 2. 客户端先连接websocket服务,具体的连接地址可以在WebSocketConfig里面配置,socketJs 地址就是http://ip: port/{websocketConfig里面配置的地址},ws地址就是ws://ip:port/{websocketConfig里面配置的地址}/websocket + 3. 给对应的用户发送消息,可以使用WebSocketUtils.sendByUser方法。 ## 代码crud生成器 具体的实现在douya-common包里面,可以直接使用,也可以自己修改。 ### 样例 ```java final String dbUrl = "数据库路径"; final String dbUser = "账号"; final String dbPassword = "密码"; GenerateCodeUtils.generatorControllerFromDb( dbUrl, dbUser, dbPassword, "hcy", "pangu-core", "sys", "pg_core_http_log", "com.douya.pangu.api", true );