- 博客(256)
- 资源 (9)
- 收藏
- 关注
原创 SpringBoot集成Nacos
文章目录介绍安装Nacos独立服务配置管理集成到Spring Boot配置集设置http请求设置使用直接引用导入配置服务管理集成到Spring Boot服务注册保护阈值服务使用其他命名空间集群管理其他配置介绍Naocs官方文档:https://nacos.io/zh-cn/docs/what-is-nacos.html安装Nacos独立服务Nacos需要独立的运行服务。到官方的gi...
2020-01-20 11:31:42
10795
1
原创 Spring Boot中使用Druid替换MyBatis数据库连接池
介绍Druid是阿里使用的数据库连接池,被阿里推崇为Java最好的数据库连接池。不仅可以承担数据库的连接访问工作,还可以提供强大的监控和扩展功能。集成到Spring Bootpom.xml添加依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artif...
2020-01-14 14:15:20
866
原创 Premiere Pro入门
介绍Adobe Premiere Pro,简称PR,是最强大的视频编辑软件。可同时创建多个时间轨道,多个视频素材按层遮挡;可对单个素材添加各种效果,例如放缩、移动、旋转、裁剪等;可插入图片遮挡视频素材,并且支持png透明;可添加字幕;可导出为几乎所有常见格式。打开PR,创建一个新的项目。注意视频渲染和回放中的渲染程序建议选择仅Mercury Playback Engine 软件,否则导出影...
2020-01-08 16:56:53
2153
原创 在java文件中动态调用groovy文件
说明GroovyClassLoader是Java的groovy库提供的类。该类可以动态将Groovy文件解析为class文件,从而可以调用其中的方法。由于Groovy是脚本文件,Java是无法得知其类定义的,因此只能动态得到一个Class文件,而无法得到具体的类定义。如下面的例子,直接在Java代码中使用GMath类是非法的,因为Java并不知道GMath类的定义。故而,只能通过Class....
2020-01-03 09:32:30
1297
1
原创 无涯的技术与成长的迷茫
记得上大学之前,老师会为我们规划好一切:什么时候要高考,在什么时间点应该掌握哪些技能,每天要学什么,作业是什么,什么时候要放假了,一切都清晰明了。忙碌,但也充实。而上了大学后,感受最深的一点就是迷茫,没有方向。再也没有人为自己规划好一个明确的长远目标,然后划分为一个个小节点明确地分散到每天。除了上课外的时间完全自由,想提升,但面对众多的技术方向感觉一团乱麻无从下手。每项技术都好难。或许有循序渐...
2019-12-20 11:25:45
278
原创 Scratch数据类型以及变量和列表
数据类型Scratch有3种数据类型:数字类型布尔类型字符串类型参数凹槽某些积木中带有参数凹槽。参数凹槽有3种:六边形: 布尔类型参数矩形: 字符串类型参数圆角矩形: 数字类型参数然而,对应返回这些类型的功能积木只有2种:六边形: 返回布尔类型/字符串类型圆角矩形: 返回数字类型/字符串类型类型转换一般来说,返回数据的功能积木只能嵌入到指定的凹槽内,而不会搞...
2019-11-04 15:58:03
9595
1
原创 Scratch程序模块化的两种方式
程序模块化的两种方式对于代码程序,往往通过类封装来实现模块化。而scratch并没有类。要实现模块化,有两种方式:使用广播-消息模拟。使用自制积木封装。使用广播-消息模拟可以将一个模块的逻辑放入一个角色中,其触发控制为当接收到(消息1)时。当要调用此模块时,就广播(消息1)并等待。于是这样就顺利模拟出了一个模块。使用自制积木封装对于一个角色,可以为其添加自制积木。自制积木中带...
2019-11-04 15:57:37
2796
2
原创 Scratch的广播与消息
在事件积木中,有一块触发积木叫当接收到(消息1)。对应地,有两块积木:广播(消息1)、广播(消息1)并等待。广播-消息机制就是编程中的全局事件。当一个消息被广播时,所有角色(包含广播者自身)都会接收到该消息。只要一个角色有该消息的接收脚本,即可接收消息并处理。即:当接收到(消息1): 当角色接收到指定的消息时,便触发该脚本。广播(消息1): 向包含自身在内的所有角色发送一个消息。发送完后...
2019-11-04 15:57:02
10919
原创 Scratch的克隆体
克隆体克隆就是将角色本体完全复制一份,包含该角色当前的所有属性,例如造型,位置,颜色,大小等。控制积木中提供了克隆自己积木。在事件积木中,单独提供了一个当作为克隆体启动时的积木。当某个角色被克隆,则其克隆体会触发该事件。故而,对于那些克隆自己的角色,脚本区存在两段独立的代码:一段用于控制本体的逻辑,一段用于控制克隆体的逻辑。二者的触发事件不同。示例:烟花烟花的逻辑实现为:一个火星点在...
2019-11-04 15:56:43
6140
原创 Scratch角色的绘制与中心点
将鼠标移动到界面右下角的角色栏,可以选择/绘制一个角色。点击绘制,左侧会进入造型界面:现在来绘制一个圆形。点击左侧的圆,然后在画布上按住鼠标左键进行绘制。按下点即为圆心。默认是绘制椭圆,可以按住shift来绘制正圆。上方可以调整圆的填充和轮廓。此时一个新的圆形角色就画好了。但还需要注意一个非常重要的属性,就是中心点。点击画布右下角的放大镜来进行放大,可以看到在画布的中心有一个灰色的十...
2019-11-04 15:56:15
4745
1
原创 Scratch的画笔
画笔属于扩展组件,需要先添加扩展,然后才能使用。画笔的绘制逻辑为:落笔移动抬笔整个过程下来,就会按画笔移动的轨迹进行绘画。画笔主要有两种属性:效果:包含颜色/饱和度/亮度/透明度粗细画笔带有一块图章积木。其作用是将当前角色的外观复制一份。注意图章与克隆的区别。克隆会直接复制出一个新角色,而图章则仅仅是改变当前角色的外观,依然是同一个角色。...
2019-11-04 15:54:56
2252
原创 Scratch的方向
Scratch的方向与平面直角坐标系中的方向是不同的。以y轴为中心,正上方为0°。沿顺时针旋转,度数为正数。例如,顺时针旋转,正上方为0°,正右方为90°,正下方为180°,正左方为270°,再次回到正上方为360°。沿逆时针旋转,度数为负数。例如,逆时针旋转,正上方为0°,正左方为-90°,正下方为-180°,正右方为270°,再次回到正上方为-360°。故而,要选取正下方左右各45°的...
2019-11-04 15:54:44
4347
原创 Scratch中的坐标系
Scratch中的坐标系即普通的平面坐标系。其中水平方向为x轴,竖直方向为y轴。x轴与y轴交点为(0,0)点。x轴正方向为水平向右,y轴正方向为竖直向上。舞台默认大小为宽480×高360。其中x轴范围是[-240,240],y轴范围是[-180,180]。Scratch提供了各种背景,其中有坐标系背景。打开选择背景界面,在搜索框中查询: Xy-grid。所有角色的位置都使用该坐标系。...
2019-11-04 15:54:28
8117
原创 Scratch所有积木
Scratch中的默认积木分为9个模块:运动、外观、声音、事件、控制、侦测、运算、变量、自制积木。除默认积木外,还可以导入扩展。文章目录运动: 蓝色积木外观: 紫色积木声音: 淡紫色积木事件: 黄色积木控制: 土黄色积木侦测: 蓝色积木运算: 绿色积木变量: 深黄色积木自制积木: 粉色扩展运动: 蓝色积木运动主要分:向当前方向前进调整方向调整x/y坐标时间内滑行碰到边缘反弹设...
2019-11-04 15:54:12
6459
1
原创 Scrach基本概念与操作
基本概念一个程序最初的触发是由事件(黄色积木)负责的。例如点击播放事件,按下空格事件,当接收到消息等。程序由舞台和角色组成,舞台和角色都可以有多个。Scratch本身提供了许多舞台和角色的素材,可直接使用。每个角色都有自己的脚本代码,由各种积木拼接而成。执行时,会从上而下顺序执行。将某个角色的脚本直接拖动到另一个角色的缩略图中,则该脚本会被复制给另一个角色。角色的外观称为造型。一个角色...
2019-11-04 15:53:50
1618
原创 Scratch注册与工程创建
注册打开官方网站:https://scratch.mit.edu/默认语言是英文,将页面拖动到最下方,可以选择语言,简体中文在列表倒数第二项:然后将页面滚动到最上方,点击加入:输入登录账户、密码、出生年月、邮箱后,即可注册成功。创建注册成功后会跳转到首页,上方有一行工具栏:分别是:创建: 可创建一个新的工程。发现: 可查看其他用户分享的作品。创意: 详细的教程,...
2019-11-04 15:53:23
1198
原创 weex的本地资源路径
在weex中,本地资源路径有四种: 路径标示符 含义 / 工程文件夹 . 当前文件夹 .. 父文件夹 // 最上级根路径 例如,工程如下:在该工程中,共有4个png文件,分别是:...
2019-11-04 15:40:35
2372
原创 Spring Boot的文件上传
Spring Boot的文件上传并不需要单独进行。当前端进行请求时,所要上传的文件作为请求的一个参数即可,与其他类型参数相同。服务端接收时,只需要对这个文件参数使用MultipartFile类型接收即可。由于文件上传的参数无法直接拼接到URL中,所以只能是post请求。如图,用postman来测试,使用post请求,在body中共传入3个参数:photo:图片文件。类型为File,...
2019-11-04 15:40:16
472
原创 js处理csv文件并导出
处理当使用js处理Excel文件时,建议导出为csv,这样就能以纯文本形式进行处理。首先使用<input>与FileReader将csv文件以文本形式加载到一个字符串变量中。设字符串变量为tableStr。首先要将整个字符串按数据行来分割。由于csv文件每行结尾都带有换行符\n,故而可以使用\n做分隔符:var rows = tableStr.split(/[\n]/) // ...
2019-10-30 11:37:41
2404
原创 js实现本地文件的加载与读取
加载本地文件要加载本地文件,需要使用<input>标签:<input type="file" id="file" multiple>如上:type: 必须为file。multiple: 用于同时加载多个文件。这样就会生成一个选择文件按钮,其右侧显示未选择任何文件。点击选择文件,即可弹出一个文件选择窗口。同时该元素还接收拖放,拖动多个文件到选择文件即可...
2019-10-30 11:36:38
4460
原创 修改java的class文件:ASM使用
ASM基础ASM是一个Java字节码操作框架,可用于class文件的修改。其原理是将class文件载入,然后构建成一棵树。然后根据用户自定义的修改类对该树进行加工,加工完成后即可得到修改后的class文件。故而ASM中使用了visitor模式:class文件的结构是固定的,根据其构造出的树作为被访问者,则其节点也是固定的。只需要对每个节点定义一个访问者即可进行指定的修改。由于修改class...
2019-10-30 11:34:49
3350
原创 修改jar中的class:杀戮尖塔修改教程
缘起作为一只程序猿,游戏自然是标配。自从入了杀戮尖塔的坑,几年来陆陆续续玩了几百小时。然而steam上的成就至今没刷完,发牌员和各路小怪次次都在针对我。在第nn{n^n}nn次死于通往进阶20的三层小怪之手后,我感受到了出离的愤怒。于是我决定,用技术怼它。思路杀戮尖塔是用java开发,其主程序是一个.jar文件。现在要修改铁甲战士的基础卡:打击。打击的基础伤害是6,目标是将其修改为60...
2019-10-08 14:02:43
8538
6
原创 修改jar包中的class文件
需求及准备需求现在有一个.jar文件,要修改其中某个文件的代码。准备确保JRE已安装且环境变量已配置。安装Java Decompiler。官方地址为:http://java-decompiler.github.io/选择其中的JD-GUI进行下载。安装winrar。提取class内容并修改打开JD-GUI,将.jar拖进来。JD-GUI会将jar包反编译为j...
2019-10-08 13:36:01
4147
1
原创 provider状态管理
引入provider打开pubspec.yaml,在dependecies下添加provider版本:dependencies: provider: ^3.1.0其中最新版本查看官方更新文档:https://pub.dev/packages/provider#-changelog-tab-创建数据Model原理从provider中取存储值时,会向上寻找最近存储的指定类型值。...
2019-09-16 13:05:13
649
原创 获取MyBatis插入数据的自增长id
spring boot中集成MyBatis来向数据库中插入一个id自增长的数据时,默认返回的是受影响数据的行数。而现在的需求是要获取自增长的id。要解决该问题,需要使用注解:@Options(useGeneratedKeys = true, keyProperty = "属性名")useGeneratedKeys = true的作用是令MyBatis获取自动生成的主键,keyPropert...
2019-08-28 10:24:01
1381
原创 在同一台服务器上启动两个不同端口的Redis
要在同一台服务器上启动两个Redis。Redis默认端口是6379,要再启动一个端口为6389的Redis。两个Redis独立工作互不冲突。根目录下的redis-server.exe会加载默认配置,端口为6379。这个不用修改。第二个Redis只需要创建一个新的配置文件,令exe开启时加载新的配置文件即可。不需要单独复制一份Redis的所有文件。流程进入redis根目录,复制redis....
2019-07-12 18:04:30
4733
原创 在同一个Tomcat下部署多个同名系统
有多个同名war要部署在同一台服务器上。除了部署多个Tomcat,还可以在同一个Tomcat下设置多个Service。流程打开Tomcat/conf/server.xml,选中已有的整个<Service>标签,复制,然后粘贴到后面。对复制的<Service>进行修改:将<Service>的name属性更改为Catalina2。将第一个<Co...
2019-07-12 17:59:06
587
原创 在同一台服务器上部署多个Tomcat
已安装部署了一个Tomat且正常运行。现在要在同一台服务器上部署另一个Tomcat。将安装好的Tomcat文件夹复制到指定位置。这里将文件夹重命名为Tomcat2。修改Tomcat2/conf/server.xml:SHUTDOWN的port为8005,将其改为不冲突的端口。HTTP/1.1的port为8080,将其改为不冲突的端口。AJP/1.3的port为8009,将其改为不冲...
2019-07-12 17:56:54
884
原创 StatelessWidget与StatefulWidget的选择
优先选择StatelessWidget。对于需要Widget自行维护状态,而这个状态又不需要暴露给父Widget的,使用StatefulWidget。其中状态定义在State中,而非StatefulWidget中。父Widget传给子Widget数据,有两种情况:父Widget同时传入数据更新函数。当子Widget操作数据更新时,调用此函数。父Widget必须是StatefulWidge...
2019-05-28 11:18:55
1416
原创 Element复用:StatefulWidget修改和key
在Flutter中,Widget的功能是“描述一个UI元素的配置数据”,即,Widget其实并不是表示最终绘制在设备屏幕上的显示元素,而只是显示元素的一个配置数据。Flutter中真正代表屏幕上显示元素的类是Element。若类比于编程语言,Widget就像是一个抽象类,而Element才是具体的类实例。因此,一个Widget对象可能会对应多个Element对象。渲染流程根据用户代码创建...
2019-05-28 11:18:06
1564
原创 flutter大小单位:dp
手机的屏幕使用点来表示。例如,手机分辨率为720×1280,代表分辨率为720×1280:宽为720个点,高为1280个点。dpi为320:每英寸物理屏幕上的点个数为320个点。160dpi的手机每英寸有160个点,320dpi的手机每英寸有320个点。于是,320dpi的每个点的尺寸是160dpi每个点的一半。即320dpi的设备,每个点的尺寸更小。于是,一个5寸的160dpi手机宽...
2019-03-14 10:37:00
14113
10
原创 在Android Studio中创建Flutter工程
准备工作安装Android Studio,并安装最新版本Android SDK。安装Flutter SDK,并已设置环境变量。推荐安装dev版本。Flutter集成了Dart,因此不需要单独安装dart-sdk。安装Android Studio插件Android Studio需要安装Dart和Flutter两个插件。打开Android Studio,选择File→Settings,...
2019-01-22 13:37:40
4865
原创 Flutter SDK安装
SDK下载安装Flutter集成了Dart,因此不需要单独安装dart-sdk。Flutter的SDK可以从官网下载:https://flutter.io/docs/development/tools/sdk/archive?tab=windows#windows这里列出了4个channel:Stable,Beata,Dev,Master。开发推荐使用dev版本。当前最新Stable版...
2019-01-22 13:30:10
21214
原创 Dart IDEA插件安装及工程创建
安装插件开打IDEA,选择:File→Settings,选择左侧标签plugins,点击右侧下方的Install JetBrains plugin...,在弹出的对话框搜索框中输入dart,等待搜索完成后就会列出Dart插件。选中,点击右侧的Install,等待安装完成。安装完成后,提示重启:创建工程重启完成后,点击File→New→Project,项目列表中就会列出Dart标签:...
2019-01-22 13:28:56
1010
原创 Dart环境安装
dart-sdk安装Dart可以选择在线安装或者压缩包解压。官网提供的在线安装方式需要翻墙,推荐使用Dart语言中文社区的链接:http://www.cndartlang.com/920.html选择一个对应的版本,点击按钮来下载,会弹出一个新的页面。加载非常慢,建议复制弹出页面的链接,粘贴到第三方下载工具中进行下载。下载后,是一个zip压缩包:解压后,是一个dart-sdk的文件夹...
2019-01-22 13:26:54
1022
原创 Spring Boot启动时执行初始化操作
通常,有些操作需要在工程启动时执行,例如某些资源的加载。SpringBoot提供了几种方式来实现该功能:@PostConstruct对于注入到Spring容器中的类,在其成员函数前添加@PostConstruct注解,则在执行Spring beans初始化时,就会执行该函数。但由于该函数执行时,其他Spring beans可能并未初始化完成,因此在该函数中执行的初始化操作应当不依赖于其他Sp...
2019-01-16 11:52:55
14878
原创 Java函数式编程:Lambda表达式和函数式接口
Lambda表达式Java的Lambda表达式形式为:(params) -&amp;gt; { statements };其中:若params只有1个,可以省略():param -&amp;gt; { statements };若params为0个,用()表示无参数:() -&amp;gt; { statements };若代码为一行,则可省略{},无论该行代码是否为表达式:(params) -&amp;gt;
2019-01-11 10:18:54
277
原创 函数式编程
基本概念函数式编程,即使用函数的方式进行编程。这个函数是指数学领域的函数。数学领域的函数本质上是一种对应关系:y = x + 1有x值,便可得到y值。于是这个函数本身表达了x→y的对应关系。函数式编程就是这样的思想:所有的函数都体现了一种映射。常规的命令式编程是思维方式的直观表达。例如,要将一棵二叉树镜像反转:var invertTree(root) { if(root != un...
2018-12-21 11:06:05
253
原创 Vue Baidu Map组件封装:多边形组件和右键菜单
在Vue上进行开发,地图使用了百度提供的Vue Baidu Map。当前版本为v0.21.15。官方文档地址:https://dafrok.github.io/vue-baidu-map/#/zh/index开发需求:在百度地图上动态进行多边形的显示,添加,删除,修改。具体流程:在地图上点右键,弹出菜单:添加多边形。点击菜单项后,进入绘制模式。在绘制模式下,每次鼠标点击百度地图,都会在...
2018-12-19 15:36:01
5113
5
原创 Vue Baidu Map使用
百度地图官方提供的是常规&lt;script&gt;标签引入的方法。要想将百度地图引入Vue中,有两种方式:在index.html中引入js文件;修改webpack.base.conf.js来增加externals属性;在主js中调用Vue.use来全局注册或在单个页面中使用import单独引入。这样,在页面中就可以像常规的页面那样使用百度地图了。需要为容器&lt;div&gt;设置一个id属...
2018-12-11 17:01:54
5900
jdk-8u241-windows-x64.rar
2020-03-17
OpenCV图像在MFC中显示
2014-01-26
MFC扩展位图按钮 实现不同状态切换 异形按钮 提示等
2012-10-31
MFC扩展位图按钮类
2012-10-30
MFC中使用flash按钮并交互
2012-05-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅