- 动态部署:基于groovy的MOP机制实现的方法的动态部署和更新。
- 动态配置管理:动态部署的最佳使用场景。
- 动态转发请求:动态部署的典型使用场景
jdk1.8、maven3.8.4、IntelliJ IDEA(Community Edition)、windows
一个WEB示例工程,包含动态部署的管理和示例
- FunctionManager.groovy:基于groovy的MOP机制实现动态加载。
- ConfigurationManager.java:实现配置文件的动态管理。
- sample.groovy:示例脚本代码,被动态部署和更新。
- conf_sample.groovy:示例配置文件,被动态管理的配置信息。
直接在本工程的release目录下执行
java -jar .\dynamic-code-0.1.0.jar
或者:
- 在本工程目录下执行
mvn gplus:compile package
- 将生成的
target/dynamic-code-0.1.0.jar
放到release
目录下,与release/code/sample.groovy
和release/conf/conf_sample.groovy
在一个目录下执行java -jar .\dynamic-code-0.1.0.jar
- 请求
curl --location --request GET 'localhost:8080/file/sample/function/hello?name=anna'
执行release/code/sample.groovy
内的hello
方法,返回Hello : anna
。 - 修改
release/code/sample.groovy
的hello
方法代码。 - 请求
curl --location --request GET 'localhost:8080/meta/reload/file/sample/function/hello'
重新加载release/code/sample.groovy
- 再次请求
curl --location --request GET 'localhost:8080/file/sample/function/hello?name=anna'
,获得更新后的结果。