Solon 1.2.13 发布,开启与 Spring Boot 的互通
Solon 一个类似Springboot的微型开发框架。项目从2018年启动以来,参考过大量前人作品;历时两年,3500多次的commit;内核保持0.1m的身材,超高的Web跑分,良好的使用体验。
Solon 强调:克制 + 简洁 + 开放的原则;力求:更小、更快、更自由的体验。
所谓更小:
内核0.1m,最小Web开发单位0.2m(相比Springboot项目包,小到可以乎略不计了)
所谓更快:
本机helloworld测试,Qps可达12万之多。可参考:《helloworld_wrk_test》
所谓更自由:(代码操控自由)
// 除了注入模式之外,还可以按需手动 // //手动获取配置 Map<String,String> db = Solon.cfg().getMap("db"); //手动获取容器里的Bean UserService userService = Aop.get(UserService.class); //手动监听http post请求 Solon.global().post("/user/update", x-> userService.updateById(x.paramMap()));
本次版本重大变更:
1、增加插件:springboot-solon-plugin(实现与Springboot互通)
- 引入框架,约0.1m大小
<dependency> <groupId>org.noear</groupId> <artifactId>springboot-solon-plugin</artifactId> <version>1.2.13</version> </dependency>
? 如果有需要可引入Solon的其它插件,Solon适配的框架多较小巧 ?
- 嵌入Springboot系统后,同时利用两套框架的容器资源与特性;或者过度期临时混合
1) 启动应用
@SpringBootLinkSolon @SpringBootApplication public class DemoApp { public static void main(String[] args) { //先 Solon.start(DemoApp.class, args); //后 SpringApplication.run(DemoApp.class, args); } }
2) 定义Springboog组件
public interface HelloService { String hello(String name); } //此处为Springboot的注解(Solon 也有同名的注解) @Component public class HelloServiceImp implements HelloService { @Override public String hello(String name) { return "hello: " + name; } }
3) 在Solon类里使用Springboot容器内的组件
//此处为Solon的注解(Springboot 也有同名的注解) @Controller public class SolonController { //使用Solon注解,将Springboot bean注入到Solon的托管类中 @Inject HelloService helloService; //注入配置 @Inject("${user.name}") String name; @Mapping("/test") public String home(String msg) throws Exception { return "solon: " + helloService.hello(); } }
4) 在Springboot类里使用Solon的手写特性
@RestController public class Text2Controller { HelloService helloService; @RequestMapping("/test2") public String home(String msg) throws Exception { //使用Solon的手写特性赋值,进行懒加载 // if(helloService == null){ helloService = Aop.get(HelloService.class); } //手动获取配置 // String name = Solon.cfg().get("user.name"); //也可以动态增加一个请求监听 // //Solon.global().get("/hello",(c)->c.output("Hello world!")); return "springboot: " + helloService.hello(name); } }
?以上仅为演示效果设计,不一定匹配真实场景?
2、适配第三方配置与注册服务,consul 框架:consul-solon-plugin
- 此框架由社区开发者贡献,Solon的第一个社区贡献。。。非常感谢
1) 配置示例
solon.app.name=test-consul-api solon.app.group=test consul.host=localhost #consul.port=8500 #consul.token= #consul.discovery.enable=true #consul.discovery.hostname=12.12.12:12 #consul.discovery.tags=dev #consul.discovery.healthCheckInterval=10s #consul.discovery.healthCheckPath=/run/check/ consul.discovery.healthDetector=jvm,cpu,memory,disk,qps,os #consul.locator.enable=true #consul.locator.interval=10000 #consul.config.enable=true #consul.config.key=test consul.config.watch=config/,gateway/ #consul.config.interval=10000
2) 使用示例
@Controller public class HelloController { //使用了consul的注册与发现服务 // @NamiClient("test-consul-api:/") HelloInterface helloInterface; @Mapping("/hello") public String sayHello() { //consul的配置内容集成到Solon的配置体系,可注入,可手动获取 // return "config:" + Solon.cfg().get("hello")+",rpc:"+helloInterface.hello0(); } }

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Cloudopt AdBlocker 发布基于机器学习的隐私保护浏览器扩展
Cloudopt AdBlocker 是一个强大的浏览器扩展,能够实时保护您的安全、防止隐私追踪、拦截钓鱼网站,过滤横幅广告、弹窗广告以及恶意广告。 Cloudopt 可以做到: 1. 拦截常见广告。 2. 加速页面载入,节省带宽,屏蔽广告和弹窗。 3. 拦截各种间谍软件,广告软件和拨号安装程序。 4. 通过拦截常见第三方跟踪系统保护您的隐私。 5. 保护您对抗恶意和钓鱼攻击。 6. 阻止脚本从危险网站下载东西。 白泽是中国古代神话中地位崇高的神兽,祥瑞之象征,传说中白泽可以预测吉凶,是令人逢凶化吉的吉祥之兽。白泽亦能说人话,通万物之情,晓天下万物状貌。 白泽是 Cloudopt 今年开源的直接运行在浏览器上的基于机器学习的启发式隐私保护引擎,能够有效的阻挡跟踪脚本、恶意广告脚本。使用 JavaScript 开发,可以运行在 Node.js、浏览器环境中。 传统的过滤方式是使用过滤规则进行过滤,但这些过滤规则都是基于开源组织、公益组织或个人手动更新的,需要耗费大量的人力进行维护。我们模仿杀毒软件的启发式引擎,基于集成学习,提出了一种自动有效的机器学习方法。通过脚本的多维度特征来...
- 下一篇
Xmacs v2020.3 已经发布
Xmacs v2020.3 已经发布 此版本更新内容包括: 特性一览 标准:完全兼容GNU TeXmacs 1.99.13 性能:做了大量性能优化,比GNU TeXmacs v1.99.13流畅 界面:支持鼠标滚轮放大和缩小 排版:标点符号后面的空白宽度正常 编辑:在Windows上,修复需要Ctrl、Shift同时按下的快捷键不生效的问题 插件:Sage插件修复Python 3支持的一个细节 插件:Octave插件重构,支持Octave 5.x,支持2D/3D图像嵌入,支持代码高亮 插件:独立的PlantUML插件,可以制作架构图、流程图、脑图等 插件:xypic插件默认加载amsmath和amssymb两个LaTeX包 文档:对于中文文档,不采用Fira字体 启动:不默认加载Python代码高亮配置,按需加载 以上特性中,未加粗的特性,表示已经将改进提交进入TeXmacs官方开源版本,能够在下一个版本中使用。 下载 Xmacs只提供Windows/macOS版本。Windows版只在Windows 10做了测试。macOS只在macOS 10.14和10.15做了测试。 Windo...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS6,CentOS7官方镜像安装Oracle11G
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Linux系统CentOS6、CentOS7手动修改IP地址