你貌似开启了广告屏蔽插件... 写博客不容易,希望能将广告过滤去掉,谢谢!

Java11新特性总结

2019-02-21   朋也   java学习笔记   java  

首先感谢尚硅谷录制的Java11视频教程,可以免费下载观看

之前在ytb上看了个java9的新特性,里面提到了两个主要更新,jshell和module

现在java11又发布很久了,再不学真要过时了

java8是个官方长期支持版本,java11也是,9,10只是过渡版本,所以完全可以路过9,10直接学习11,这一篇博客也是根据视频内容整理出来的,我觉得文字看的方便些,如果你觉得视频好看,也可以去尚硅谷官方下载视频查看

jshell

jshell在java9里被提出来的,就是可以直接在终端里写java程序了,回车就可以执行,不用先创建java文件,然后编译成class文件,最后再执行了,它把这些步骤都省了,打开终端,输入jshell,回车之后会进入jshell的环境,然后就可以直接写你要测试的代码了

类似于nodejs中直接在终端里输入 node 和python中直接在终端里输入 python 回车是一样的

如果不会用可以通过 /help 查看里面都有哪些命令

jshell默认会导入一些包,如下

Javascript异步执行结果获取的三种解决方案

2019-02-18   朋也   javascript学习笔记   javascript promise rxjs  

js里的异步有时候很方便,有时候却很让人恼火,下面来总结一下异步执行结果获取的方法

回调

这是最传统的方法了,也是最简单的,如下代码

function foo(cb) {
  setTimeout(function() {
    cb(1); // 通过参数把结果返回
  }, 2000);
}

foo(function(result) { // 调用foo方法的时候,通过回调把方法返回的数据取出来
  console.log(result);
})

Angular7创建项目、组件、服务以及服务、路由的使用和父子组件间传值总结

2019-02-18   朋也   javascript学习笔记   Angular  

三大前端项目就剩angular没学了,在网上找了几个教程,这里总结一下,方便以后用到时查阅

创建项目

首先安装cli工具

npm install -g @angular/cli

创建一个空项目, 有两处要选择的,一个是路由,我这里是要路由的,还有一个开发css的语言,我这里选择scss,就不截图了,选完后会自动通过yarn安装依赖,稍等一会就好了

ng new pybbs-front-angular

ES5里类的创建和继承

2019-01-28   朋也   javascript学习笔记   javascript  

JS里类的创建

JS里类就是方法,创建一个类其实就是定义一个方法,比如:

function Person() {
    this.name = 'tomcat';
    this.age = 20;
}

这就定义了一个Person类,要使用的话,需要new一个实例,如下

var p = new Person();
console.log(p.name);
console.log(p.age);

Selenium自动化发布话题,以及获取window.showModalDialog()弹窗对象(Python实现)

2019-01-21   朋也   Python学习笔记   Python selenium  

折腾了一下自动化测试,找到了阿里开源的一个 uirecorder ,可以自动录制测试过程,但自定义逻辑有些麻烦

然后发现这货是基于 selenium 实现的,于是就开始折腾起了 selenium,弄出了个小成果,记录一下并分享给有需要的人

老规矩,先上图

axios上传图片,koa2接收保存上传的图片,lrz在上传前压缩图片

2019-01-15   朋也   nodejs学习笔记   nodejs koa axios  

后台接收图片

初始化koa2项目这里不多说,github上有个开源的koa-generator项目,安装运行一下初始化命令即可,readme上有详细介绍

不过有点要提一下,koa-generator脚手架里使用的是koa-bodyparser,这货不支持上传文件的解析,当初折腾这个纠结了一阵

这里使用koa2搭建服务端,使用koa-body,版本是 "koa-body": "^4.0.6",

安装 yarn add koa-body

app.js 里要修改一下,搜索一下 koa-bodyparser 把它相关的代码都去掉,然后加上下面代码

Spring-Boot集成Dubbo相关配置总结

2019-01-12   朋也   spring-boot学习笔记   spring-boot dubbo  

上一篇博客使用springboot集成搭建了一个dubbo服务,这篇博客来总结一下dubbo的相关配置

配置文件加载顺序

从上到下配置优先级顺序

  1. 使用 -D 参数启动,springboot开发的项目可以打成jar包,然后使用 java -jar xxx.jar 的形式来启动,当然也可以在命令后面指定参数,比如 java -jar -Ddubbo.protocol.port=20880 xxx.jar 的形式来指定通信协议的端口,这种优先级是最高的
  2. dubbo.xml配置文件次之
  3. dubbo.properties 文件最后

一般整合springboot与dubbo,配置都会在 application.yml 里配置,如果想另外配置可以通过第一种方式写一个脚本指定线上环境的相关配置,其实也可以通过springboot的配置文件加载顺序来配置开发环境跟线上环境的不同

Spring-Boot集成Dubbo简单入门总结

2019-01-10   朋也   spring-boot学习笔记   spring-boot dubbo  

安装zookeeper

我这里使用zookeeper作为服务注册中心,版本3.4.9,下载地址:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/

下载后,解压

要先配置一下,否则没法启动,启动会报错,找不到 zoo.cfg 文件,其实这个配置文件是有的,在 conf 文件夹里,只不过名字是 zoo_sample.cfg 把名字改一下即可

windows是启动还有些问题,直接运行 zkServer.cmd 还不行,我电脑上还装了 git-bash ,所以直接打开 git-bash 进入 bin 目录,运行命令 ./zkServer.sh start 即可启动

停止命令是 ./zkServer.sh stop

Spring-Boot项目集成Flyway和MybatisPlus执行先后问题解决办法

2019-01-03   朋也   spring-boot学习笔记   spring-boot flyway mybatis-plus  

使用mybatis-plus很爽,但没法自动创建数据库和表结构或者一些初始化数据,所以我在自己项目里加上了flyway(数据库迁移工具),还有一个类似的工具,liquibase,只不过后者用的是xml配置的,flyway直接执行的是sql,相比之下我更喜欢flyway

但集成flyway跟mybatis-plus却出现了问题,执行先后的问题,下面具体说明

引入依赖

不用指定版本号,springboot已经内置了

<dependency>
  <groupId>org.flywaydb</groupId>
  <artifactId>flyway-core</artifactId>
</dependency>

Spring-Boot项目启动自动检测数据库是否存在,不存在自动创建数据库(不是表)

2019-01-03   朋也   spring-boot学习笔记   spring-boot  

写博客总结的基本上都是工作中碰到的痛点,这次解决了一直想解决的问题,就是springboot启动服务的时候,自动去创建数据库的问题

用nodejs+mongodb开发网站的时候,如果没有在mongodb里创建数据库的时候,启动项目,nodejs服务会自动创建数据库,但java程序里确不行,总是报错,特别是 spring-boot 这样的项目,启动默认自动配置 dataSource

所以在程序启动之前要先把数据库创建好,虽然借助工具可以很方便的创建数据库,但哪有自动创建爽