首页 文章 精选 留言 我的

精选列表

搜索[版本发布],共10000篇文章
优秀的个人博客,低调大师

TeXstudio 4.4.0 发布,LaTeX 编辑器

TeXstudio 是一款开源跨平台 LaTeX 编辑软件,界面与 Texmaker 类似。TeXstudio 为用户提供互动式拼写检查、代码折叠、语法高亮、代码提示和自动完成等特性,功能丰富,界面美观,但软件本身不提供底层功能,需要使用者自行安装 LaTeX(XeLaTeX)等编译软件,例如 MiKTeX 或 TeXLive ,软件源于 Texmaker,基于 Qt 开发。 TeXstudio 4.4.0中的更改包括: 新图标主题 Colibri(来自 geolta) 现代化的手册 更快地删除多行 使用 esc 结束多光标模式 没有 win/qt5 build 切换到 CMAKE 构建系统(不推荐使用 qmake) 隐藏/过滤配置完成列表 bug 修复 详情可查看更新说明。

优秀的个人博客,低调大师

Solon v1.11.0 发布,Hello Java

一个更现代感的 Java 应用开发框架:更快、更小、更自由。没有 Spring,没有 Servlet,没有 JavaEE;独立的轻量生态。主框架仅 0.1 MB。 @Controller public class App { public static void main(String[] args) { Solon.start(App.class, args); } @Get @WebSocket @Mapping("/hello") public String hello(@Param(defaultValue = "java") String name) { return String.format("Hello %s!", name); } } 入门探索视频(用户录制): 相对于 Spring Boot 和 Spring Cloud 的项目: 启动快 5 ~ 10 倍。 (更快) qps 高 2~ 3 倍。 (更高) 运行时内存节省 1/3 ~ 1/2。 (更少) 打包可以缩小到 1/2 ~ 1/10;比如,300Mb 的变成了 23Mb。 (更小) 基于服务 name 进行注册发现 与 k8s svc 相互对应 支持 Service Mesh 架构部署方案 同时支持 jdk8, jdk11, jdk17, jdk19 没有 Spring,没有 Servlet,没有 JavaEE;独立的轻量生态 本次更新: 清理 xxx-solon-plugin 的 solon cloud 插件包(正试由 xxx-solon-cloud-plugin 替代) 插件 solon.auth 增加 AuthAdapterSupplier 的 pathPrefix 对 adapter 规则有相同限制效果 插件 solon.web.staticfiles 增加位置印射配置支持 插件 logback-solon-plugin, log4j-solon-plugin 增加自定义 Appender 插件 sa-token-solon-plugin 允许没有 sa-token 配置 修复 xxl-job-solon-cloud-plugin 没配置时会出错的问题 增加 @Body Map<String,String> paramMap 注入方式支持,用于注入 ctx.paramMap() 增加 @Cookie("Token") String token 注入方式支持,用于注入 ctx.cookie() 调整 SessionStateBase 对 cookieSet 的处理 升级 sa-token 为 1.33.0 长级 sqltoy 为 5.2.21 进一步了解 Solon: 《想法与架构笔记》 《生态预览》 《与 Spring Boot 的区别?》 《与 Spring Cloud 的区别?》 项目仓库: gitee:https://gitee.com/noear/solon github:https://github.com/noear/solon

优秀的个人博客,低调大师

Forest 1.5.27 发布,支持 Kotlin 协程

Forest介绍 Forest 是一个开源的 Java HTTP 客户端框架,它能够将 HTTP 的所有请求信息(包括 URL、Header 以及 Body 等信息)绑定到您自定义的 Interface 方法上,能够通过调用本地接口方法的方式发送 HTTP 请求 Forest 如何使用 Forest 不需要您编写具体的 HTTP 调用过程,只需要您定义一个接口,然后通过 Forest 注解将 HTTP 请求的信息添加到接口的方法上即可。请求发送方通过调用您定义的接口便能自动发送请求和接受请求的响应 Forest 的工作原理 Forest 会将您定义好的接口通过动态代理的方式生成一个具体的实现类,然后组织、验证 HTTP 请求信息,绑定动态数据,转换数据形式,SSL 验证签名,调用后端 HTTP API(httpclient 等 API)执行实际请求,等待响应,失败重试,转换响应数据到 Java 类型等脏活累活都由这动态代理的实现类给包了。 请求发送方调用这个接口时,实际上就是在调用这个干脏活累活的实现类 获得奖项 2021 年度 OSC 中国开源项目评选「最受欢迎项目」 相关链接: https://www.oschina.net/project/top_cn_2021 新增特性 Async/Await 接口 自 Ajax 流行开始,回调函数的异步处理方式就已经深入人心,这种方法虽好,但也有不少问题 比如回调地狱:很容易写出在A请求的回调函数中调用B请求,然后在B请求的回调函数中调用C请求,这样的套娃代码 另一个问题,就是执行回调函数所在的线程和调用接口的线程并非同一个线程,这就会引入并发和锁的问题,处理的时候需要谨慎对待 为了解决这些问题,需引入 Async/Await 方式 MyUser result = Forest.get("/foo") // 创建 GET 请求 .async() // 设置为异步 .executeAsFuture() // 发送请求,并返回 ForestFuture 对象 .await() // 阻塞线程并等待请求响应,成功响应后会返回 ForestResponse 对象 .get(MyUser.class); // 调用 ForestResponse 的 get 方法进行转换数据并返回结果 同时发送和接受多个异步请求 ForestFuture f1 = Forest.get("/foo") // 创建第一个 GET 请求 .async() // 设置为异步 .addQuery("id", 0) // 设置 Query 参数 .executeAsFuture(); // 发送请求并返回 ForestFuture 对象 ForestFuture f2 = Forest.get("/bar") // 创建第二个 GET 请求 .async() // 设置为异步 .addQuery("id", 1) // 设置 Query 参数 .executeAsFuture(); // 发送请求并返回 ForestFuture 对象 // 在这里并不阻塞线程,可以做些其它事情 doSomething(); // Forest.await 方法会阻塞线程并同时等待多个请求 // 只有当所有请求都完成时,才会继续往下执行 Forest.await(f1, f2).forEach(res -> { // 遍历每个 ForestResponse 对象 String result = res.get(String.class); // 从 ForestResponse 中取出数据 }); 批量发送和等待多个异步请求 // new 一个 ForestFuture 对象列表 List<ForestFuture> futures = new LinkedList<>(); for (int i = 0; i < 100; i++) { // 循环100次 futures.add(Forest.get("/data") // 创建请求,并添加到 futures 列表中 .async() // 设置为异步 .addQuery("id", i) // 设置 Query 参数 .executeAsFuture()); // 发送请求,返回 ForestFuture 对象 } Forest.await(futures).forEach(res -> { // 等待这100个请求,然后进行遍历 String result = res.get(String.class); // 从 ForestResponse 中取出数据 }); Kotlin 协程 从本次更新开始 Forest 支持 Kotlin 语言的协程特性,可以在发送异步请求的时候使用 Kotlin 协程代替 JVM 的线程池 Forest 默认情况下,请求的异步模式为platform,即 JVM 平台自带的线程池 如果要启用 Kotlin 线程,需要将异步模式设置为kotlin_coroutine forest: async-mode: kotlin_coroutine 官网和仓库地址 官网地址: http://forest.dtflyx.com Gitee 仓库地址: https://gitee.com/dromara/forest Github 仓库地址: https://github.com/dromara/forest 本次更新内容 feat: 异步API增强, 支持 Async/Await 风格 (#I60IAL:异步API增强) feat: 响应API增强, 后验数据转换 (#I60IDO:响应API增强 ) feat: kotlin协程 feat: 请求可中断取消执行 (#I60I90:请求可中断取消执行) fix: ForestHeaderMap.addCookie时可能会存在无法进入header的问题 (100) fix: 发送 multipart/form-data 请求时,@Body参数为空会报错 (#I5Y7WJ:发送 multipart/form-data 请求时,@Body 参数为空会报错 ) fix: 未设置 charset 时,调用 ForestRequest.getQueryString() 报错 (#I5RGX4:未设置 charset 时,调用 ForestRequest.getQueryString() 报错 ) fix: ForestRequest.getBasePath() 无法获取 AddressSource 中定义的 basePath (#I5RGOY:ForestRequest.getBasePath() 无法获取 AddressSource 中定义的 basePath ) fix: x-www-form-urlencoded 格式请求 Body 在 URLEncode 时忽略 # fix: 在重试的时候没有关闭上一次的请求响应

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册