# spring-boot-hot-deploy **Repository Path**: guijiaoqqq/spring-boot-hot-deploy ## Basic Information - **Project Name**: spring-boot-hot-deploy - **Description**: spring boot 热部署 启动依赖 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2019-04-11 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # thot-spring-boot-starter #### 介绍 用于快速集成热部署jar包能力,并提供辅助接口用于管理依赖包。 * 项目结构: demo模块为项目主模块,是一个基础的spring boot项目 demo-intf,demo-intf2为两个接口模块 demo-impl,demo-impl2分别为两个接口模块的实现 thot-spring-boot-starter 为继承热部署能力的spring boot启动依赖 #### 软件架构 略 #### 使用说明 1 接口包、实现包打包:mvn clean install 2 打包thot-spring-boot-starter依赖: mvn clean install 3 启动demo程序 4 thot自动注入辅助接口(接口文档暂略,参看ThotController类) * 上传依赖 * 卸载依赖 * 获取上传的资源名 * 获取注入的bean(impl包中的bean) * 获取注册的接口(impl包中的接口) #### 支持规格 1 支持spring组件 @Component, @Service等注入 2 支持spring组件相互依赖,可以使用@AutoWired 3 支持mapper接口和xml注入,使用@Resource 4 支持spring rest动态接口(@RestController, @RequestMapping)注入 5 支持实现类jar包将依赖一起打入,例如impl模块打包后,target目录下默认会出现两个jar包,建议使用demo-impl-0.0.1-SNAPSHOT-jar-with-dependencies.jar 6 支持groovy实现 #### 使用注意点 * 接口类、实现类不能同包同名 同包同名类属于同一个类,造成spring bean 只能注入其中一个。在使用类时,会有冲突。应当杜绝同胞同名类的出现。 * mapping url不能同名 接口路径如果有同名,造成接口注册失败。 * mapper接口不能同名(xml建议与mapper接口保持一致,不然可能会异常) 同名问题是显然不行的,如果代码都在主模块里实现,不会出现同名问题,但是现在代码实现分撒在各个jar包中,且代码有不同的人员编写,彼此并不清楚是否有同名类, 这就造成了运行异常的隐患,并且这个问题可能很难被察觉。我们得规范命名规则来减少此类问题出现: 1 由主模块的开发人员提供接口模块的实现 2 主模块开发人员给出实现模块的结构(包路径包含中特定的功能名,并且所有类,文件名以此功能名作为前缀) #### 待优化问题 1 接口动态注入后,swagger-ui页面不能同步更新 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request