Solon 的一个特色:体外扩展机制,用于解决 fatjar 模式部署时的扩展需求。比如:

  • 把数据源配置文件放到体外,根据环境去调整
  • 把一些模块做成扩展包放到体外
    • 开发管理后台时,可以每个频道做成一个扩展包

其中, .properties 或 .yml 文件都会做为扩展配置加载,.jar 文件会做为扩展包加载。

1、首先,通过主配置文件申明扩展目录

目录需要手动创建

#申明扩展目录为 demo_ext
solon.exnted: "demo_ext"

也可以,目录自动创建。不同的场景可以不同选择

#申明扩展目录为 demo_ext(加!开头,表示自动创建)
solon.exnted: "!demo_ext"

2、应用示例

将一个应用的数据源配置放在扩展目录,以便后续修改,部署效果:

demo.jar
demo_ext/_db.properties

再将一个用户频道或者领域模块做为扩展包,部署效果:

demo.jar
demo_ext/_db.properties
demo_ext/user.jar

3、扩展包注意事项

  • 要么把扩展包打成 fatjar
  • 要么把扩展包的依赖打进主应用里

Solon 开发进阶,二、体外扩展机制的更多相关文章

  1. Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式

    目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...

  2. Solon 开发,二、注入或手动获取Bean

    Solon 开发 一.注入或手动获取配置 二.注入或手动获取Bean 三.构建一个Bean的三种方式 四.Bean 扫描的三种方式 五.切面与环绕拦截 六.提取Bean的函数进行定制开发 七.自定义注 ...

  3. 跨平台移动APP开发进阶(二)HTML5+、mui开发移动app教程

    前端开发APP,从HBuilder开始~ 序 通过 HTML5 开发移动App 时,会发现HTML5 很多能力不具备.为弥补HTML5 能力的不足,在W3C 中国的指导下成立了www.HTML5Plu ...

  4. Ionic APP-Web SPA开发进阶(二)Ionic进阶之路由去哪了

    Ionic进阶之路由去哪了 项目需求 在查看药品时,从药品列表中可以通过点击药品列表获取某一药品详情.提交订单时,同样可以查看药品详情.两种情形下,从药品详情返回后,应分别返回至原来的页面.如下图所示 ...

  5. 网站开发进阶(二十六)js刷新页面方法大全

    js刷新页面方法大全 在项目开发过程中,需要实现刷新页面.经过学习,发现下面这条语句就可以轻松实现. location.reload(); // 刷新页面 有关刷新页面的其它方法,具体学习内容如下,有 ...

  6. 网站开发进阶(二十五)js如何将html表格导出为excel文件

    js如何将html表格导出为excel文件        赠人玫瑰,手留余香.若您感觉此篇博文对您有用,请花费2秒时间点个赞,您的鼓励是我不断前进的动力,共勉! jsp页面数据导出成excel的方法很 ...

  7. 网站开发进阶(二十九)HTML特殊转义字符

    HTML特殊转义字符 参考文献 http://tool.oschina.net/commons?type=2 美文美图

  8. 网站开发进阶(二十八)初探localStorage

    初探localStorage       注: localStorage经典项目应用案例 HTML5中提供了localStorage对象可以将数据长期保存在客户端,直到人为清除. localStora ...

  9. 网站开发进阶(二十四)HTML颜色代码表

    HTML颜色代码表 设置背景色:style='background-color:red' 设置字体颜色:style='color:red' 生活在于学习,知识在于积累.

  10. 网站开发进阶(二十三)Address already in use: JVM_Bind <null>:8088

    Address already in use: JVM_Bind <null>:8088 注:请点击此处进行充电! 阿里云服务器又莫名其妙的宕掉!内存泄漏问题依然存在,又出现了端口占用的情 ...

随机推荐

  1. 昇腾迁移丨4个TensorFlow模型训练案例解读

    本文分享自华为云社区<TensorFlow模型训练常见案例>,作者: 昇腾CANN. 基于TensorFlow的Python API开发的训练脚本默认运行在CPU/GPU/TPU上,为了使 ...

  2. 手撕Vuex-提取模块信息

    前言 在上一篇[手撕Vuex-模块化共享数据]文章中,已经了解了模块化,与共享数据的注意点. 那么接下来就要在我们自己的 Nuex 中实现共享数据模块化的功能.那么怎么在我们自己的 Nuex 中实现共 ...

  3. L3-008 喊山

    #include <bits/stdc++.h> using namespace std; using pii = pair<int, int>; const int N = ...

  4. 运维初级实践——Linux系统命令教程

    区块链运维工程师在Linux环境中常用的命令.快捷键,以及安装软件和文件管理的最佳实践. 1. 常用Linux命令 1.1 文件和目录操作 ls:列出目录内容 cd:更改目录 mkdir:创建新目录 ...

  5. extern关键字的用法

    extern关键字的理解 extern是C/C++语言中的一个关键字,用于声明一个变量或函数具有外部链接性(external linkage),即这些变量或函数可以被其他文件访问. 在C/C++中,如 ...

  6. 使用Spring Cache高效处理缓存数据

    Spring Cache是Spring框架提供的一种缓存抽象,可以有效地处理缓存数据.使用Spring Cache可以简化开发过程,提高应用程序的性能和可扩展性. 本文将详细介绍如何使用Spring ...

  7. 湖南省网络攻防邀请赛 RE 题解

    ez_apkk 解题过程: 将apk拖入jadx,查看MainActivity,发现是简单RC4加密,密钥是"55667788",最后再将加密结果+1 public String ...

  8. MYSQL EXPLAIN 执行计划

    EXPLAIN 执行计划 有了慢查询语句后,就要对语句进行分析.一条查询语句在经过 MySQL 查询优化器的各种基于成本和规则的优化会后生成一个所谓的执行计划,这个执行计划展示了接下来具体执行查询的方 ...

  9. 超轻量级MP4封装方法介绍

    liwen01 2023.12.17 前言 MP4是目前非常常用的一种视频封装格式,关于MP4的介绍资料也非常多.我们常用的封装库或工具有:ffmpeg,libmp4v2,GPAC,MP4.js,它们 ...

  10. ElasticSearch之cat indices API

    命令样例如下: curl -X GET "https://localhost:9200/_cat/indices?v=true&pretty" --cacert $ES_H ...