GT

springMVC中使用 RequestBody POST请求 415 (Unsupported Media Type)

痞子三分冷 提交于 2020-03-21 01:43:31
3 月,跳不动了?>>> 前端代码: < html > < head > < base href ="<%=basePath %>" /> < meta http-equiv ="Content-Type" content ="text/html; charset=utf-8" /> < title > Insert title here </ title > </ head > < body > < form method ="post" action ="<%=basePath%>user/login2" > < label for ="name" > 用户名 </ label > < input id ="name" type ="text" name ="username" > < br > < label for ="pass" > 密码 </ label > < input id ="pass" type ="text" name ="password" > < button type ="submit" > 提交 </ button > </ form > </ body > </ html > 后端代码: @PostMapping("/login2" ) public String loginLogic2(@RequestBody User user) {

如何组织构建多文件 C 语言程序(二)

本小妞迷上赌 提交于 2020-03-21 01:29:03
3 月,跳不动了?>>> 我将在本系列的第二篇中深入研究由多个文件组成的 C 程序的结构。 在 第一篇 中,我设计了一个名为 喵呜喵呜 的多文件 C 程序,该程序实现了一个玩具 编解码器 。我也提到了程序设计中的 Unix 哲学,即在一开始创建多个空文件,并建立一个好的结构。最后,我创建了一个 Makefile 文件夹并阐述了它的作用。在本文中将另一个方向展开:现在我将介绍简单但具有指导性的喵呜喵呜编解码器的实现。 当读过我的《 如何写一个好的 C 语言 main 函数 》后,你会觉得喵呜喵呜编解码器的 main.c 文件的结构很熟悉,其主体结构如下: /* main.c - 喵呜喵呜流式编解码器 */ /* 00 系统包含文件 */ /* 01 项目包含文件 */ /* 02 外部声明 */ /* 03 定义 */ /* 04 类型定义 */ /* 05 全局变量声明(不要用)*/ /* 06 附加的函数原型 */ int main(int argc, char *argv[]) { /* 07 变量声明 */ /* 08 检查 argv[0] 以查看该程序是被如何调用的 */ /* 09 处理来自用户的命令行选项 */ /* 10 做点有用的事情 */ } /* 11 其它辅助函数 */ 包含项目头文件 位于第二部分中的 /* 01 项目包含文件 */ 的源代码如下: /*

Flutter & Koa2 实战全面升级,试问谁不孤独?(小万字长文)

若如初见. 提交于 2020-03-21 01:28:47
3 月,跳不动了?>>> 那个固执的少年回来了 《孤岛 App》这个系列已经停更了很久,这次全面升级,对的起给我 star 的老铁们 介绍 APP 名称:《独 °》 客户端方案:flutter 服务端方案:Koa2 功能 写着完善着 - 我的 - 个人信息 - 头像修改 - 首页 - 列表页 - 发送图文、视频等 …… 复制代码 前序准备 下文链接预警 长文预警 唠嗑方式不正经预警 错别字警告 当开始全面更新迭代的时候,没有 产品 的思维是多么可怕的一件事,开发的过程中会同步更新系列文章,希望一块 撩一撩flutter 当然了这些文章都是没有更新的 Flutter 实战 从头撸一个「孤岛」APP(No.1、项目初始化、屏幕适配) Flutter 实战 从头撸一个「孤岛」APP(No.2、闪屏 Splash Page、引导页) Flutter 实战 从头撸一个「孤岛」APP(No.3、书单、搜索框、Dio 初探) Flutter 实战 从头撸一个「孤岛」APP(No.4、流行、点赞、动画) 分支变动 是这样的,咱们把之前持续更新的移动到 lsolated_island_app 这个分支。想要翻看的可以自行 clone 《独》所有的开发现在 master 分支。 可能旧的文档地址找不到的情况,这个我后续更新一下 之前我的评论区 问:为啥 flutter 评论那么少 答

银行选型和排坑实战:用开源软件自建分布式数据服务平台

↘锁芯ラ 提交于 2020-03-21 01:26:49
3 月,跳不动了?>>> 之前 设计篇 讲了数据拆分的方式、场景、优缺点以及实施步骤,偏方法与理论。技术篇会介绍分布式数据服务平台设计与实现,讲述如何通过技术手段解决数据拆分带来的各种问题,以及各中间件的架构与原理。 平台主要包括分布式数据访问中间件(SDK、Proxy)、平滑扩容、数据集成、管控平台等四部分。 一、分布式数据访问中间件 数据拆分后,分散在多个库与表中,但应用开发时怎样才能准确访问数据库,换言之,如何才能拿到准确的数据库连接,拼接出正确的sql(主要是实际表名),然后执行返回结果集呢? 为了尽可能减少业务侵入性,应用少做改造,往往都会抽象出一个数据访问层负责上述功能。数据访问层按实现方式不同,可分为应用自定义、数据中间件、分布式数据库三种方式,在我们项目中采用的是中间件方式,其技术架构如下: 分布式数据访问层 按照接入方式不同,数据访问中间件可以分为 SDK、Proxy (云原生架构下可能还会有sidecar方式)。 一个典型的分库分表中间件由JDBC接口实现(SDK模式)、MySQL报文解析(Proxy、Sider模式)、SQL解析器,路由计算、SQL重写, SQL执行、聚合处理、结果集合并、数据源管理、配置管理等部分构成。 1、JDBC接口实现 JDBC接口实现起来并不太难,数据库连接池都是基于此实现,本质上就是一种装饰器模式,主要就是java

Flume也扛不住的千亿级数据,OPPO如何靠自研提升

牧云@^-^@ 提交于 2020-03-21 01:10:27
3 月,跳不动了?>>> 一、背景 OPPO互联网业务每天产生海量的数据,如调用链跟踪系统ESA Trace,每日采样的请求数据超过千亿级别,我们需要对这些数据进行归类,聚合、过滤和存储,同时我们需要对采集到的数据进行多通道并行处理,比如并行进行关键指标告警和写入存储集群。 而数据采集系统的性能、通道隔离性、吞吐量等因素对于我们来说是一个挑战。在我们的应用场景中,开源Flume在可视化、监控、性能,以及通道隔离性等方面无法满足我们的需求。 ESA DataFlow是由OPPO互联网自研的一款高性能的数据流采集、聚合和传输框架,单节点的日均处理数据量超过百亿条。相较Flume在运维可视化、路由、并行处理能力等方面有较大的提升。 二、基本概念 ESA DataFlow是一款高性能数据流处理框架,它具有: 消息路由: 灵活的路由规则,把消息分发到不同的通道处理。 高性能: 单节点具备日处理100亿以上条数据能力。易扩展:内置常用Source、Sink,Channel开发者可灵活自定义扩展Source、Channel、Sink,也可自定义序列化方式。 监控运维: 内置管理控制台,能实时查看数据输入、缓冲以及消费速率等各项数据统计。 其内部结构如下: 1、DataEvent DataEvent是DataFlow端到端传输的基本单元,它由body和headers信息构成,由K

如何在 Linux 中更改 MAC 地址

我与影子孤独终老i 提交于 2020-03-21 01:08:25
3 月,跳不动了?>>> 在向你展示如何在 Linux 中更改 MAC 地址之前,让我们首先讨论为什么要更改它。 可能有几个原因。也许你不希望在公共网络上公开你的实际 MAC 地址 (也称为物理地址)?还有可能是网络管理员可能已在路由器或防火墙中阻止了特定的 MAC 地址。 一个实用的“好处”是某些公共网络(例如机场 WiFi)允许在有限的时间内免费上网。如果你还想继续使用,那么伪造 Mac 地址可能会欺骗网络,让它认为是一台新设备。这也是一个有名的原因。 我将展示更改 MAC 地址(也称为欺骗/伪造 MAC 地址)的步骤。 在 Linux 中更改 MAC 地址 让我们一步步来: 查找你的 MAC 地址和网络接口 让我们找出一些 关于 Linux 中网卡的细节 。使用此命令获取网络接口详细信息: ip link show 在输出中,你将看到一些详细信息以及 MAC 地址: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu

你知道吗,Flutter内置了10多种Button控件

有些话、适合烂在心里 提交于 2020-03-21 00:38:09
3 月,跳不动了?>>> 注意:无特殊说明,Flutter版本及Dart版本如下: Flutter版本: 1.12.13+hotfix.5 Dart版本: 2.7.0 Flutter内置了10多种Button(按钮)类控件供我们使用,了解这些控件有助于提高我们的开发速度。 RaisedButton RaisedButton是一个material风格”凸起“的按钮,基本用法: RaisedButton( child: Text('Button'), onPressed: (){ }, ) 效果: onPressed 为null或不设置时,按钮是禁用状态。 onHighlightChanged 为高亮变化回调,按下时处于高亮状态,抬起处于不高亮状态,用法如下: RaisedButton( onHighlightChanged: (high){ }, ... ) 按钮可以设置字体及各种状态颜色,总结如下: 属性 说明 textColor 字体颜色 disabledTextColor 禁用状态下字体颜色 color 背景颜色 disabledColor 禁用状态下背景颜色 highlightColor 高亮颜色,按下时的颜色 splashColor 水波纹颜色,按下松开会有水波纹效果 以textColor为例,用法如下: RaisedButton( textColor: Colors

也许你知道 0.1 + 0.2 === 0.3 为 false,但是 1.1 + 0.2 === 1.3 呢?

耗尽温柔 提交于 2020-03-21 00:37:05
3 月,跳不动了?>>> 因吹斯挺 在浏览器调试窗口中输入下面两段代码,会发现一个因吹斯挺的现象: console .log( 0.1 + 0.2 === 0.3 ) // false console .log( 1.1 + 0.2 === 1.3 ) // true 复制代码 明明都是浮点数的加法,为什么表现出来的效果不一样呢?让我们一步步来揭晓谜底。 十进制转二进制 首先我们需要知道十进制是怎么转为二进制的,下面以 6.1 为例来进行说明。 整数部分 整数部分转为二进制如下图所示: 6 / 2 = 3...0 => 0 3 / 2 = 1...1 => 1 1 / 2 = 0...1 => 1 6 => 110 复制代码 也就是不断的将商除以二得到余数,直到商为0。 小数部分 小数部分转为二进制如下图所示: 0.1 * 2 = 0.2 => 0 0.2 * 2 = 0.4 => 0 0.4 * 2 = 0.8 => 0 0.8 * 2 = 1.6 => 1 0.6 * 2 = 1.2 => 1 0.2 * 2 = 0.4 => 0 … 0.1 => 000110011001100110011001100110011001100110011001100110011... 复制代码 不断的乘以二然后拿掉整数部分,直到积为0。 结合两部分,得到: 110

✏️Canvas实现图片上绘画、缩放、移动和保存历史状态,纯干货(附css3转换公式)

岁酱吖の 提交于 2020-03-21 00:03:48
3 月,跳不动了?>>> 哈哈哈俺又来啦,这次带来的是canvas实现一些画布功能的文章,希望大家喜欢!这个css3变化公式可以适用于平常我们使用的 transform 属性或者是移动端我们缩放地图啊之类的都可以哟! 前言 因为也是大三了,最近俺也在找实习,之前有一个自己的小项目: github.com/zhcxk1998/S… 面试官说可以往深层次思考一下,或许加一些新的功能来增加项目的难度,他提了几个建议,其中一个就是 试卷在线批阅,老师可以在上面对作业进行批注,圈圈点点等 俺当天晚上就开始研究这个东东哈哈哈,终于被我研究出来啦! 采用的是 canvas 绘制画笔,由css3的 transform 属性来进行平移与缩放,因为呢考虑到如果用canvas的 drawImage 或者 scale 等属性进行变化,生成出来的图片也会有影响,想着直接css3变化,canvas用来做画笔等功能。大佬们有何妙招,在评论区指点指点! ( 希望大家可以留下宝贵的赞与star嘻嘻 ) 效果预览 动图是放cdn的,如果访问不了,可以登录在线尝试尝试: test.algbb.cn/#/admin/con… 公式推导 如果不想看公式如何推导,可以直接跳过看后面的具体实现~ 1. 坐标转换公式 转换公式介绍 其实一开始也是想在网上找一下有没有相关的资料,但是可惜找不到,所以就自己慢慢的推出来了

【你应该掌握的】深入浅出typescript

流过昼夜 提交于 2020-03-21 00:03:06
3 月,跳不动了?>>> 团队: skFeTeam  本文作者:高扬 介绍 TypeScript 是一种由微软开发的开源、跨平台的编程语言。它是JavaScript的超集,最终会被编译为JavaScript代码。 TypeScript可以解决JavaScript弱类型和没有命名空间,难以模块化的问题,同时也增强了代码的可读性,在团队协作和大型项目中体现出更大的优势。 本文将从“基础用法、高阶用法、模块、react项目实践中的应用”四个方向展开文章,方便大家理解,都会备注列子、codesandbox上的远程代码。 基础用法 1.变量类型 代码示例 src/components/baseVar.tsx TypeScript提供与JavaScript几乎相同的数据类型( 布尔值boolean,字符串string,数字number,数组[],元组 ),此外还提供了 枚举enum 类型。 当不确定变量的数据类型或者数据类型会在代码运行过程中变化时,使用 any 来标记这些变量,使它们通过编译阶段的检查。 object 表示原始类型以外的类型,即number,string,boolean,symbol,null,undefined以外的类型。 void 用于表示没有任何类型,通常用于方法没有返回值时。void类型的变量只能赋值undefined或者null。 null 和 undefined