前言 在前两次的 cicada 版本中其实还不支持读取配置文件,比如对端口.路由的配置. 因此我按照自己的想法创建了一个 issue ,也收集到了一些很不错的建议. 最终其实还是按照我之前的想法来做了这个配置管理. 同时将 cicada 升级到了 v1.0.2. 目标 在做之前是要把需求想好,到底怎样的一个配置管理是对开发人员来说比较友好的? 我认为有以下几点: 可以自定义配置,并且支持不同的环境(开发.测试.生产). 使用灵活.对使用者来说不要有太多的束缚. 理论上来说配置这个东西应当完全独立…
前言 两天前写了文章<「造个轮子」--cicada(轻量级 WEB 框架)> 向大家介绍了 cicada 之后收到很多反馈,也有许多不错的建议. 同时在 GitHub 也收获了 80 几颗 小♥♥(绝对不是刷的..) 也有朋友希望能出一个源码介绍,本文就目前的 v1.0.1 版本来一起分析分析. 没有看错,刚发布就修复了一个 bug,想要试用的请升级到 1.0.1 吧. 技术选型 一般在做一个新玩意之前都会有技术选型的过程,但这点在做 cicada 的时候却异常简单. 因为我的需求是想提供一个…
前言 俗话说 「不要重复造轮子」,关于是否有必要不再本次讨论范围. 创建这个项目的主要目的还是提升自己,看看和知名类开源项目的差距以及学习优秀的开源方式. 好了,现在着重来谈谈 cicada 这个项目的核心功能. 我把他定义为一个快速.轻量级 WEB 框架:没有过多的依赖,核心 jar 包仅 30KB. 也仅需要一行代码即可启动一个 HTTP 服务. 特性 现在来谈谈重要的几个特性. 当前版本主要实现了基本的请求.响应.自定义参数以及拦截器功能. 功能虽少,但五脏俱全. 在今后的迭代过程中会逐渐…
前言 本次 Cicada 已经更新到了 v1.0.3. 主要是解决了两个 issue,#9(Boss线程数好像设置有误 ) #8(怎么返回纯字符串内容不要JSON格式?). 所以本次的主要更新为: Cicada 采用合理的线程分配来处理接入请求线程以及 IO 线程. 支持多种响应方式(以前只有 json,现在支持 text). 为了满足上者引入了 context. 优雅停机. 其中我觉得最核心也最有用的就是这个 Context,并为此重构了大部分代码. 多种响应方式 在起初 Cicada 默认只…
大家好,我是 「后端技术进阶」 作者,一个热爱技术的少年. 很多小伙伴搞不清楚为啥要学习 Netty ,今天这篇文章开始之前,简单说一下自己的看法: @ 目录 服务端 创建服务端 自定义服务端 ChannelHandler 处理消息 客户端 创建客户端 自定义客户端 ChannelHandler 处理消息 运行程序 总结 觉得不错的话,欢迎 star!ღ( ´・ᴗ・` )比心 Netty 从入门到实战系列文章地址:https://github.com/Snailclimb/netty-pract…
LOJ#3036. 「JOISC 2019 Day3」指定城市 一个点的可以dp出来 两个点也可以dp出来 后面的就是在两个点的情况下选一条最长的链加进去,用线段树维护即可 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar(' ') #…
统计「优美子数组」 给你一个整数数组 nums 和一个整数 k. 如果某个 连续 子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」. 请返回这个数组中「优美子数组」的数目. 示例 1 输入:nums = [1,1,2,1,1], k = 3 输出:2 解释:包含 3 个奇数的子数组是 [1,1,2,1] 和 [1,2,1,1] . 2 输入:nums = [2,4,6], k = 1 输出:0 解释:数列中不包含任何奇数,所以不存在优美子数组. 3 输入:nums = [2,…
原文:零元学Expression Design 4 - Chapter 3 看小光被包围了!!如何活用「Text On Path」设计效果 本章将教大家如何活用「Text On Path」,做出文绕图以及文字线性排列的效果 也可以学到如何使用Polyline以及B-Spline ? 本章将教大家如何活用「Text On Path」,做出文绕图以及文字线性排列的效果 也可以学到如何使用Polyline以及B-Spline ? 范例最後成果图片: ? 跟着做,就能做初出跟范例一样的效果了! ? 01…
为了使本篇文章更容易让读者读懂,我特意写了上一篇<任何人都需要知道的「世界时间系统」构成原理,尤其开发人员>的科普文章.本文才是重点,绝对要读,走起! Java平台时间系统的设计方案 几乎任何事物都会有“起点”这样的概念,比如人生的起点就是我们出生的那一刻. Java平台时间系统的起点就是世界时间(UTC)1970年1月1日凌晨零点零分零秒.用专业的写法是“1970-01-01T00:00:00Z”,最后的大写字母“Z”指的是0时区的意思. 在Java平台时间系统里,这个起点用单词“epoch…
今天教大家如何用Python爬虫去搭建一个「生活常识解答」机器人. 思路:这个机器人主要是依托于"阿里达摩院发布的语言模型PLUG",通过爬虫的方式,发送post请求(提问),然后返回json数据(回答) 1.问答平台 这个「生活常识解答」机器人采用的是:阿里达摩院发布的语言模型PLUG(最近刚发布的,目前是测试阶段),地址链接如下: https://nlp.aliyun.com/portal#/BigText_chinese 该模型参数规模达270亿,采用1TB以上高质量中文文本训练…