# HotSecondsExtension
**Repository Path**: kubernete/HotSecondsExtension
## Basic Information
- **Project Name**: HotSecondsExtension
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-11-14
- **Last Updated**: 2023-11-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# HotSecondsServer 插件扩展通用包
这个工程主要是用于扩展[HotSeconds](https://github.com/Liubsyy/HotSecondsIDEA)热部署逻辑,兼容更多的第三方开源框架,热部署第三方框架说简单也简单,说复杂也复杂,简单的点是,只要懂框架原理就能按照加载的原理重新增量加载/注册即可(先清理缓存),复杂的点是,需要考虑每个版本每个框架在不同的场景下的兼容性,需要花费一定的时间和精力。大家可直接Fork项目提交代码,后续再合并一下,众人拾柴火焰高,本插件的理念是:一切皆可热部署。
## 扩展包更新范围
| 版本 | 更新范围 |mvn发布时间|
|-----------------|--------------------------------------------------|-----------------|
| 1.0.0 | MyBatis和MyBatis Plus支持新增mapper接口和xml配置文件 |2023-09-23|
## 扩展包使用
1. 先确保HotSecondsServer版本>=HotSecondsServer-beat2,然后在maven 的pom.xml引用本工程的包
```
io.github.liubsyy
HotSecondsExtension
1.0.0
```
2. 在hot-seconds-remote.xml中配置 com.liubs.hotseconds.extension.AutoChoose,会自动智能选择需要的扩展组件,然后启动项目即可
```
com.liubs.hotseconds.extension.AutoChoose
```
## 插件内核已支持
| 开源组件 | 范围 |
|----------------------------------------------|---------------------------------|
| Java | 修改代码,新增字段,新增方法,新增类,修改动态代理类 |
| Spring | 包括Spring,SpringMVC,SpringBoot生态 |
| MyBatis | 支持mapper修改xml文件(扩展包已支持新增mapper和xml) |
| MyBatis Plus | 同MyBatis |
| Freemarker
Thymeleaf
Velocity-Spring | 刷新缓存 |
## 本扩展包已支持
| 组件 | Class | 范围 |
|----------|---------------------------------------|--------------|
| Velocity | com.liubs.hotseconds.extension.cache.VelocityHtmlCacheClear | 刷新html缓存 |
| MyBatis | com.liubs.hotseconds.extension.container.MyBatisBeanRefresh | 新增mapper类,新增xml热部署 |
| MyBatisPlus | 同MyBatis | 同MyBatis |
# 扩展包开发流程
## 开发步骤
>1.写一个类,实现 IHotExtHandler接口
>
>2.在适当的时机注册这个类到 AllExtensionsManager
>
> (1)可以在某个特殊类初始化的时候注册,demo: VelocityRegistry
>
> (2)也可以直接在AllExtensionsManager写死
## 扩展包开发例子
[刷新velocity缓存](https://github.com/Liubsyy/HotSecondsExtension/blob/master/doc/%E5%86%99%E6%89%A9%E5%B1%95%E5%8C%85%E4%BE%8B%E5%AD%90.md)
[动态增强类(加载类时)](https://github.com/Liubsyy/HotSecondsExtension/blob/master/src/main/java/com/liubs/hotseconds/extension/transform/demo/TransformDemo.java)