中国这么多 Java 开发者,应该诞生出生态级应用开发框架
1、必须要有,不然就永远不会有
应用开发框架,虽然没有芯片、操作系统、数据库、编程语言这些重要。但是最终呈现在用户面前的,总是有软件部分。而软件系统开发,一般都需要应用开发框架,它是软件系统的基础性部件之一。
很多很多软件系统都会有 Java 开发的部分,尤其是政府部门的软件系统大量的使用了 Java。市场非常的大,我们有很多的 Java 程序员,更有很多技术大能,也为很多全球级的项目供献过力量。理所应该当也要有自己的“生态级”应用开发框架,不是说卡不卡脖子的问题,而是不好意思没有啊!外面可是隔三差五的出语言。
国内现在有很多好的“功能性能框架”,也有很多好的“快速开发框架”,还有很多好的“后台脚手架”。但是没有像 Spring 这样生态级的框架出现。个人觉得,这应该是有问题的、是可惜的、是遗憾的。
想要搞个 Java 生态级的应用开发框架。一般是以年为开发时间单位的(需要漫长的时间打磨),一般是不赚钱的。还有 Spring 生态这个巨人存在。但,真的有很多人是期待的:一个轻量的,更现代感的,最好还是国产的。
刚开始的确会很难;刚开始可能不如人家的完善;刚开始会有很多人质疑和漫骂。再难能有芯片难???不是说非要替换代别人,而是必须要有,不然就永远不会有。
2、一个美好的“生态级”应用开发框架
应该是所有“功能型”框架的好朋友,就像水、土、空气一样串起万物生长;应该是接地气些,方便所有技术员快速学习和使用。比如:
- 应该能自动装配扩展能力(方便做第三方扩展)
- 应该有很多的第三方合作与便利适配(生态嘛)
- 应该有IOC 和 AOP(确实更便利)
- 应该启动很快(必须要远超它的前辈)
- 应该内存更少,尤其是在启动时和静默时的内存(休息时,不该吃那么多内存)
- 应该很少量的代码(不然学习太幸苦了)
- 应该有自己的思考方式和性格特性(抄过来的不好)
其实要求也不高,只要道心稳,慢慢打怪升级。最近有位技术大牛说:国外有 spring 和 apache,国内有 solon 和 dromara。
3、论 Solon 框架的意义
是一个国产的生态级 Java 应用开发框架(已发具备全球第二级别的生态)。开玩笑,两三百个生态扩展呢。
- 国内第一个
从零开始构建,有自己的标准规范与开放生态。尤其没有使用 javaee 的接口规范(它改包名了,可麻烦)。会借鉴与善用前人的成果,但绝对是原创。
- 为什么说是生态呢
没有功能,没有集成。都是基于标准与规范的扩展与适配。同一个需求,可以有很多不同的方案选择。这是架构的美感。当然别人家的生态框架也会是这样。
- 提供不同的选择
以前只有包子,没得选,不管什么场景只有包子吃。而且很多人都习惯了这样。现在是还有饼干和花生米,你可以按需选择。
- 助力信创国产化
信创,讲国产可控。但是很多软件系统用了 spring 开发。之前是没得选。现在可以用 solon 了。
- 助力国产语言的成长
当有适合的国产语言出现时,可以快速实现副本迁移。因为 solon 是原创,有自己的标准规范与开放生态,迁移起来很方便。开发语言,有好的生态框架,能优化用户体验,加速成长。
- 助力部训机构使用国产框架进行 Java 教学
一个生态级的应用开发框架。无形之中,会有很多模式,有很多术语。应用于教学,对国产开发环境是好事。
- 助力高校使用国产框架进行 Java 教学
Solon 的愿景里,会有很多相关书出现。以 Solon 的视角去展现 Java。 以前是没得选,以后可以选 Solon 相关的书,进行教学。
- 助力 Java 开源项目成长
以前嘛,我们的 Java 开源项目很多是“面向 Spring 编程的”。现在可以回归本源,“面向 Java 编程”(同时也适配下 Solon)。Java 的世界很大,有很多的不同的生态框架。
- 助力 Java 程序员的成长
有些 Java 程序员,如果没有 Spring 是不能编程的。其实 Java 的世界很大,Java 之外的世界更大。见识不同的生态应用开发框架,见识不同的编程语言,可以看见更大的世界。
4、Solon 生态框架是应运而生的
这不是吹牛,之前真的是没有,这是第一个生态级的。打磨五六年了。暂时,它还真是中国人的 Java 生态框架(没别的啦)。
特性:
- 启动快 5 ~ 10 倍。 (更快)
- qps 高 2~ 3 倍。 (更高)
- 运行时内存节省 1/3 ~ 1/2。 (更少)
- 打包可以缩小到 1/2 ~ 1/10;比如,300Mb 的变成了 23Mb。 (更小)
- 同时支持 jdk8, jdk11, jdk17, jdk21, graalvm native image
简介:
- 克制、简洁、高效、开放、生态
- 支持 JDK8、JDK11、JDK17、JDK20(是同时支持)
- Http、WebSocket、Socket 三种信号统一的开发体验(俗称:三源合一)
- 支持“注解”与“手动”两种模式,按需自由操控
- Not Servlet,可以适配任何基础通讯框架(最小 0.3m 运行rpc架构)
- 独特的 IOC/AOP 容器设计。不会因为插件变多而启动变很慢
- 支持 Web、Data、Job、Remoting、Cloud 等任何开发场景
- 兼顾 Handler + Context 和 Listener + Message 两种架构模式
- 强调插件式扩展,可扩展可切换;适应不同的应用场景
- 支持 GraalVm Native Image 打包
- 允许业务插件“热插”、“热拔”、“热管理”
预览:
@Controller
public class App {public static void main(String[] args) {Solon.start(App.class, args, app -> {//手写模式app.get("/hello1", ctx -> ctx.output("Hello world!"));});}//注解模式@Get@Socket@Mapping("/hello2")public String hello2(String name) {return String.format("Hello %s!", name);}
}
5、什么样的 Java 项目用 Solon 好
就像华为讲的,不要因为爱国而特意买华为手机。Solon 也是,有需要就用不需要就跳过(按正常的需求选择):
- 信创需要国产化,应该用 Solon 或者 Solon Cloud(有案例)
- 军工项目要国产化,应该用 Solon 或者 Solon Cloud(有案例)
- 嵌入式设备,内存有限,算力差,可以用 Solon 或者 Solon Native(有案例)
- 客户的希望你内存更少,可以用 Solon (有案例)
- 别的框架用腻了,可以用 Solon (有案例)
- 有新系统开发想尝新的框架,可以用 Solon (有案例)
- 老系统要轻量化改造,可以用 Solon(有案例)
作为后来者,大家的疑或是会多一些。有问题,可以去交流群里多交流。
6、Solon 的代码仓库
喜欢 Solon 的,可以帮助宣传。喜欢但觉得不够好的,可以助其成长。不方便切换框架的,也可支持:
- https://gitee.com/noear/solon
- https://github.com/noear/solon
“众人拾柴火焰高”,支持它、使用它、传播它、一起贡献代码:)
相关文章:
中国这么多 Java 开发者,应该诞生出生态级应用开发框架
1、必须要有,不然就永远不会有 应用开发框架,虽然没有芯片、操作系统、数据库、编程语言这些重要。但是最终呈现在用户面前的,总是有软件部分。而软件系统开发,一般都需要应用开发框架,它是软件系统的基础性部件之一。…...
仿猫扑盒子引流神器试看神马视频-红包打卡签到领金
特点1:站内发红包,抢红包 特点2:会员可上传视频 特点3:设置每天免费试看次数…..具体看演示站点,为准 支付在后台上传收款二维码即可,支持微信和支付宝。前台提交订单后台管理员审核 环境:宝…...
WhatsApp自动营销软件是真实的吗?对做外贸有帮助吗?
出海营销少不了的就是依靠海外平台,WhatsApp作为许多海外国家和地区最受欢迎的聊天应用程序,活跃用户占到了全球人口的四分之一,有些地区比如欧洲、美洲,用户渗透率超过了80%,对海外营销的企业来说是不可缺少的销售工具…...
抖音短视频矩阵系统搭建
企业在进行短视频矩阵运营时,搭建一个矩阵号是非常必要的。矩阵号可以绑定多个不同平台的账号,批量制作和定时发布短视频,提高企业的曝光量和粉丝互动。但是,如何搭建一个有效的短视频矩阵号呢?以下是几个关键步骤。 一…...
Chinese-LLaMA-AIpaca
文章目录 关于 Chinese-LLaMA-Alpaca一、LLaMA模型 --> HF格式二、合并LoRA权重,生成全量模型权重方式1:单LoRA权重合并方式2:多LoRA权重合并(适用于Chinese-Alpaca-Plus )三、使用 Transformers 进行推理四、使用 webui 搭建界面1、克隆text-generation-webui并安装必…...
IP归属地应用的几个主要特点
作为一款优秀的IP地址定位工具,主题IP归属地的应用无疑是最好的选择之一。该应用可以将您需要查询的IP地址快速定位到所在的具体物理位置,并提供详细的地址和地图信息。接下来,让我们一起来看一看IP归属地应用的几个主要特点: 1. …...
通过解读yolov5_gpu_optimization学习如何使用onnx_surgon
onnx实战一: 解析yolov5 gpu的onnx优化案例: 这是一个英伟达的仓库, 这个仓库的做法就是通过用gs对onnx进行修改减少算子然后最后使用TensorRT插件实现算子, 左边是优化过的, 右边是原版的。 通过这个案例理解原版的onnx的导出流程然后我们看英伟达是怎么拿gs来优化…...
图像复原与重建,解决噪声的几种空间域复原方法(数字图像处理概念 P4)
文章目录 图像复原模型噪声模型只存在噪声的空间域复原 图像复原模型 噪声模型 只存在噪声的空间域复原...
Android 启动优化案例:WebView非预期初始化排查
去年年底做启动优化时,有个比较好玩的 case 给大家分享下,希望大家能从我的分享里 get 到我在做一些问题排查修复时是怎么看上去又low又土又高效的。 1. 现象 在我们使用 Perfetto 进行app 启动过程性能观测时,在 UI 线程发现了一段 几十毫…...
20230919后台面经整理
1.你认为什么是操作系统,操作系统有哪些功能 os是:管理资源、向用户提供服务、硬件机器的扩展 1.进程线程管理:状态、控制、通信等 2.存储管理:分配回收、地址转换 3.文件管理:目录、操作、磁盘、存取 4.设备管理&…...
画一个时钟(html+css+js)
这是一个很简约的时钟。。。。。。。 效果: 代码: <template><div class"demo-box"><div class"clock"><ul class"mark"><liv-for"(rotate, index) in rotatedAngles":key"i…...
红 黑 树
文章目录 一、红黑树的概念二、红黑树的实现1. 红黑树的存储结构2. 红黑树的插入 一、红黑树的概念 在 AVL 树中删除一个结点,旋转可能要持续到根结点,此时效率较低 红黑树也是一种二叉搜索树,通过在每个结点中增加一个位置来存储红色或黑色…...
掷骰子的多线程应用程序1(复现《Qt C++6.0》)
说明:复现的代码来自《Qt C6.0》P496-P500。在复现时完全按照代码,出现了两处报错: (1)ui指针(2)按钮的响应函数。下面程序对以上问题进行了修改。除了图片、清空、关闭功能外,其他…...
【vue2第十八章】VueRouter 路由嵌套 与 keep-alive缓存组件(activated,deactivated)
VueRouter 路由嵌套 在使用vue开发中,可能会碰到使用多层级别的路由。比如: 其中就包含了两个主要页面,首页,详情,但是首页的下面又包含了列表,喜欢,收藏,我的四个子路由。 此时就…...
如何确保亚马逊、速卖通等平台测评补单的环境稳定性和安全性?
做亚马逊、速卖通等平台测评补单时,确保环境的安全性和稳定性是非常重要的。稳定的环境是测评的基础,如果无法解决安全性问题,那么测评就不值得进行。为了确保稳定的环境系统,需要考虑物理环境和IP环境两个方面。 首先࿰…...
echarts图表 实现高度按照 内容撑起来或者超出部分滚动展示效果
背景:因为数据不固定 高度写死导致数据显示不全,所以图表高度要根据内容计算 实现代码如下: <divv-if"showCharts"id"business-bars"class"chart":style"{ height: chartHeight px }"></d…...
【论文阅读】检索增强发展历程及相关文章总结
文章目录 前言Knn-LMInsightMethodResultsDomain AdaptionTuning Nearest Neighbor Search Analysis REALMInsightsMethodKnowledge RetrieverKnowledge-Augmented Encoder ExpResultAblation StudyCase Study DPRInsightMethodExperimentsResults RAGInsightRAG-Sequence Mode…...
【漏洞复现系列】二、weblogic-cve_2020_2883(RCE/反序列化)
Key words:T3协议,weblogic Server,反序列化 2.1、漏洞原理 cve_2020_2883 远程代码执行漏洞存在于 WebLogic Server 核心组件中,允许未经身份验证的攻击者通过 T3 协议网络访问并破坏易受攻击的 WebLogic Server,成功的漏洞利…...
算法通关村-----LRU的设计与实现
LRU 缓存 问题描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存。int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值&…...
王江涛十天搞定考研词汇
学习目标: 考研词汇 学习内容: 2023-9-17 第一天考研词汇 学习时间: 开始:2023-9-17 结束:进行中 学习产出: 2023-9-17intellect智力;知识分子intellectual智力的;聪明的intellectualize使...理智化&a…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
Git常用命令完全指南:从入门到精通
Git常用命令完全指南:从入门到精通 一、基础配置命令 1. 用户信息配置 # 设置全局用户名 git config --global user.name "你的名字"# 设置全局邮箱 git config --global user.email "你的邮箱example.com"# 查看所有配置 git config --list…...
