🔥 超神器啊!0.4Mb 就为 Java 中间件的控制台开发提供
比如你开发了个中间件(比如叫“annie”),想安排一个管理界面(比如叫:annie-admin)。后端接口想用什么开发?
<dependencies> <dependency> <groupId>org.noear</groupId> <artifactId>solon-boot-jdkhttp</artifactId> </dependency> </dependencies>
只要 0.4Mb,有 Ioc/Aop 容器;有 Mvc 支持;有 Config 管理支持;还有无限的扩展支持。
一、自由的启动
1、如果你想做为“独立应用”,我们这么启动:
public class AnnieApp{ public static void main(String[] args){ Solon.start(AnnieApp.class, args); } }
2、如果你想“内嵌”到 SpringBoot3 的项目里。就这么启动:
@Configuration public class AnnieConfig { @PostConstruct public void start() { //启动 solon Solon.start(AnnieConfig.class, new String[]{"--cfg=annie.properties"}); //可以用特定的配置文件,避免与主应用冲突 } @PreDestroy public void stop() { if (Solon.app() != null) { //停止 solon(根据配置,可支持两段式安全停止) Solon.stopBlock(false, Solon.cfg().stopDelay()); } } @Bean public FilterRegistrationBean folkmqAdmin(){ //通过 Servlet Filter 实现 http 能力对接 FilterRegistrationBean<SolonServletFilter> filter = new FilterRegistrationBean<>(); filter.setName("AnnieFilter"); filter.addUrlPatterns("/annie-admin/*"); filter.setFilter(new SolonServletFilter()); return filter; } }
3、如果你想“内嵌”到 Vert.X 的项目里。这么启动:
public class AnnieConfig extends AbstractVerticle { private final Router router; private final VxWebHandler handler; public AnnieConfig(Router router) { this.router = router; this.handler = new VxWebHandler(); } @Override public void start() { router.routeWithRegex("/annie-admin/*").handler(req -> { handler.handle(req.request()); }); Solon.start(AnnieConfig.class, new String[]{"--cfg=annie.properties"}); } @Override public void stop() { if (Solon.app() != null) { Solon.stopBlock(false, Solon.cfg().stopDelay()); } } }
4、如果你想“内嵌”到 jFinal 的项目里。这么启动:
public class AnnieConfig extends Handler implements IPlugin { public boolean start() { Solon.start(AnnieConfig.class, new String[]{"--cfg=annie.properties"}); return true; } public boolean stop() { if (Solon.app() != null) { Solon.stopBlock(false, Solon.cfg().stopDelay()); } return true; } @Override public void handle(String target, HttpServletRequest request, HttpServletResponse response, boolean[] isHandled) { if (target.startsWith("/annie-admin/")) { Context ctx = new SolonServletContext(request, response); try { //Solon处理(可能是空处理) Solon.app().tryHandle(ctx); if (isHandled != null && isHandled.length > 0) { isHandled[0] = true; } } catch (Throwable e) { ctx.errors = e; throw e; } finally { ContextUtil.currentRemove(); } } else { if (next != null) { next.handle(target, request, response, isHandled); } } } }
二、可独立、可内嵌的通用开发
- 添加配置 annie.properties
#项目配置 annie.title=Annie #配置数据源 solon.dataSources.annie!.class=com.zaxxer.hikari.HikariDataSource solon.dataSources.annie!.jdbcUrl=jdbc:mysql://localhost:3306/rock?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=true solon.dataSources.annie!.driverClassName=com.mysql.cj.jdbc.Driver solon.dataSources.annie!.username=demo solon.dataSources.annie!.password=123456
再引入轻量的 sql 工具(20kb),轻量的 http 工具(40kb)
- 开发接口
@Controller public class LoginController { @SqlUtils SqlUtils sqlUtils; @Mapping("hello") public String hello() { return "Hello world!"; } @Mapping("sql") public UserDo sql(String username, String passowd) { return sqlUtils.sql("SELECT * FROM username=? AND passowd?", username, passowd) .queryRow() .toBean(UserDo.class); } @Mapping("http") public UserDto http(String username, String passowd) { return HttpUtils.http("http://demo.org/user/get") .data("username", username) .data("passowd", passowd) .post(UserDto.class); } }
更多扩展与开发内容,可参考 Solon 官网。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Python 3.12 vs Python 3.13 – 性能测试
Python 3.13上周正式发布了稳定版,主要变化包括一个新的交互式解释器、对在自由线程模式(无全局解释锁,no-GIL)下运行的实验性支持 (PEP 703),以及即时编译器 (PEP 744)。这些改进预计将带来性能的适度提升。 近日,开发者在AMD Ryzen 7000系列和第13代Intel Core处理器的电脑上,对Python 3.13与Python 3.12进行了性能测试,共计100项不同的基准测试。 所有测试都在使用Windows 11的电脑上进行,使用的是Python 3.12.7和Python 3.13.0(均为64位版本)的pyperformance 1.11.0库。 AMD Ryzen 7000系列桌面处理器 测试的第一部分使用一台配备AMD Ryzen 9 7900处理器、DDR5内存和M.2 PCIe Gen4 NVMe驱动器的台式电脑。 下表显示了在该设备上使用Python 3.12(作为参考)和Python 3.13进行的100项测试的结果。 基准测试 Python 3.12 Python 3.13 提升倍数 2to3 226 ms 217 ms (1...
- 下一篇
欢迎使用 Llama 3.2
Llama 3.2 来了!今天,我们欢迎 Llama 系列的下一个版本加入 Hugging Face。这次,我们很高兴与 Meta 合作发布多模态和小型模型。在 Hub 上提供了十个开源模型 (5 个多模态模型和 5 个仅文本模型)。 Llama 3.2 Vision 有两种尺寸: 11B 适用于在消费级 GPU 上的高效部署和开发,90B 适用于大规模应用。两种版本都有基础版和指令微调版。除了这四个多模态模型外,Meta 还发布了支持视觉的新版 Llama Guard。Llama Guard 3 是一个安全模型,可以分类模型输入和生成内容,包括检测有害的多模态提示或助手响应。 Llama 3.2 还包括可以在设备上运行的小型仅文本语言模型。它们有两种新大小 (1B 和 3B),并提供基础版和指令版,具有强大的能力。还有一个小型 1B 版本的 Llama Guard,可以与这些或更大的文本模型一起部署在生产用例中。 在发布的功能和集成中,我们有: Hub 上的模型检查点 https://hf.co/collections/meta-llama/llama-32-66f448ffc8c3...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Hadoop3单机部署,实现最简伪集群
- CentOS6,7,8上安装Nginx,支持https2.0的开启