ubuntu设置mysql远程访问
死亡,就像是水消失在水中。——博尔赫斯《另一次死亡》 找到mysql配置文件 1cat /etc/mysql/my.cnf 发现这里提示配置文件放到了这下面 12!includedir /etc/mysql/conf.d/!includedir /etc/mysql/mysql.conf.d/ 第一个是mysql客户端的配置文件目录 第二个是mysql服务端配置文件目录 我们找到第二个 1vim /etc/mysql/mysql.conf.d/mysqld.cnf 注释掉 1# bind-address = 127.0.0.1 顺便加上忽略大小写 1lower_case_table_names = 1 重启mysql服务 1service mysql restart
mybatis拦截器
你要有种,你就扬着脸一直往前冲。可是你得跟妒忌,毁谤,庸俗斗争,跟所有的人斗争。——巴尔扎克《高老头》 今天学了点Mybatis拦截器,参考了Mybatis-Plus部分代码 首先是使用@Intercepts注解,它的源码注释告诉我们可以这样使用: mybatis-plus中使用的就是这种方式,参考: 这里可以传入@Signature,指定它的type为: Executor,执行器,我们可以看到它包含了如下方法,说明它是一个比较全能的范围,可以做很多事情参数如处理、返回处理、重写sql等 我们依葫芦画瓢写两个: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364package com.ruben.simplescaffold.plugin;import cn.hutool.core.collection.CollUtil;import cn.hutool.core.lang.Opt;i...
copilot
为了使灵魂宁静,一个人每天要做两件他不喜欢的事。——《月亮与六便士》 分享这个插件 在idea和vscode都能用 能够根据注释、上下文提示代码,例如此处白色就是我们提示的内容 有时候能遇到一些有趣的 一些实用的css动画 html标签 甚至是java代码、maven依赖库等等都可以补全
对接飞书机器人
你真正的凯旋,在于你不断地毁坏你的凯旋门。——阿多尼斯《我的孤独是一座花园》 按照文档申请webhook https://open.feishu.cn/document/ukTMukTMukTM/ucTM5YjL3ETO24yNxkjN 然后编写代码: 引入的hutool 代码: 1234567891011121314151617181920212223242526272829303132import cn.hutool.core.map.MapBuilder;import cn.hutool.core.map.MapUtil;import cn.hutool.http.HttpResponse;import cn.hutool.http.HttpUtil;import cn.hutool.json.JSONUtil;import cn.hutool.log.Log;import cn.hutool.log.LogFactory;/** * 机器人工具类 * * @author <achao1441470436@gmail.com> * @since 2022/4...
setState异步问题
若人间有情,那是开始,也是尽头。——北岛怀念顾城 今天使用react中setState后立马从state中获取,然后使用,发现时灵时不灵的,我立马意识到setState可能是异步的,翻看官方文档,果然: 调用 setState 其实是异步的 —— 不要指望在调用 setState 之后,this.state 会立即映射为新的值。如果你需要基于当前的 state 来计算出新的值,那你应该传递一个函数,而不是一个对象(详情见下文)。 代码不会像预期那样运行的示例: 123456789101112131415161718incrementCount() { // 注意:这样 *不会* 像预期的那样工作。 this.setState({count: this.state.count + 1});}handleSomething() { // 假设 `this.state.count` 从 0 开始。 this.incrementCount(); this.incrementCount(); this.incrementC...
react hook 生命周期
诚实的生活方式其实是按照自己身体的意愿行事,饿的时候才吃饭,爱的时候不必撒谎。——马尔克斯《霍乱时期的爱情》 官方文档:https://zh-hans.reactjs.org/docs/hooks-reference.html#conditionally-firing-an-effect 直接上代码: 123456789101112131415161718192021222324252627282930313233343536373839404142'use strict';function LikeButton() { const [liked, setLiked] = React.useState(false) const [count, setCount] = React.useState(0) React.useEffect(() => { // 只执行一次 setInterval(() => setCount(state => ++state), 1000) ...
使用BiFunction更改map的value
伟大变为可笑只有一步,但再走一步,可笑又会变为伟大。——佩思 这个PR是这样的: map 通过传入的BiFunction实现来返回值为新的map,支持返回别的类型 123456789101112131415161718/** * 通过biFunction自定义一个规则,此规则将原Map中的元素转换成新的元素,生成新的Map返回<br> * 变更过程通过传入的 {@link BiFunction} 实现来返回一个值可以为不同类型的 {@link Map} * * @param map 原有的map * @param biFunction {@code lambda},参数包含{@code key},{@code value},返回值会作为新的{@code value} * @param <K> {@code key}的类型 * @param <V> {@...
vercel
请给我勇气和欢愉,我要攀登这一天的顶峰。——博尔赫斯 vercel可以快速开发前端网站然后一键部署 网址:https://vercel.com/ 进来后我们登陆了可以看到控制台,创建一个应用 我这里选择一个nuxt.js的模板,点击create 我们的代码就已经自动clone到我们的github仓库中了 此时开始了自动部署 在一阵烟花特效后,点击Go to Dashboard可以回到控制台 进入我们的应用 点击visit即可访问 完成
vue中特殊的prop和事件
懒惰等于将一个人活埋。——泰勒 我们知道v-model可以用于input等标签,当做语法糖进行绑值 对于我们自定义的组件,其实也可以使用 官方文档 例如此处我们可以让input改变值时,父组件绑定的值一并改变 1234567891011121314151617<template> <input type="checkbox" :checked="value" @change="$emit('input', $event.target.checked)" /></template><script> export default{ props:{ value:{ type:Boolean, default:()=>false } ...
Object.fromEntries
微微怪时间不能保存情绪,保存那一切情绪所曾流连的境界。——《你是人间的四月天》 文档 我们可以用其将Iterator转换为对象,例如Map、Array或者实现@@iterator方法的的对象 1Object.fromEntries(new URLSearchParams("q=apple&from=en&to=zh&appid=2015063000000001&salt=1435660288&sign=f89f9594663708c1605f3d736d01d2d4")) 1Object.fromEntries(new Map(new URLSearchParams("q=apple&from=en&to=zh&appid=2015063000000001&salt=1435660288&sign=f89f9594663708c1605f3d736d01d2d4"))) 例如我这里写一个class,实现迭代协议 1234567891011121314...
