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

springboot服务优雅关机脚本(在停止服务的命令发出后将执行完正在运行的进程)外加检测进程死掉自动启动脚本

2019-05-31   阿辉   spring-boot学习笔记   spring-boot shell  

自从用上springboot开发项目后,服务都是打jar包然后通过 java -jar xx.jar 的方式来启动的

比如下面这个脚本就是启动pybbs的脚本,加载 prod 配置文件,启动后在后台运行,将日志写在jar包目录下的 log.file 里

最全的Spring-Boot集成Mybatis-Plus教程

2019-04-15   阿辉   spring-boot学习笔记   spring-boot  

开发pybbs最后选用的是Mybatis-Plus框架,不得不说,真香,想当初接触过jpa后,跟别人安利,说jpa多好用多简单,后来在公司项目里用时,随着项目渐渐复杂起来,多个表关联查询是真的不爽,哎呀,xml真香

这一篇博客来总结一下使用mybatis-plus的相关配置以及mybatis的一些用法

GraphQL入门,在Spring-Boot项目中使用GraphQL风格的接口

2019-04-03   阿辉   spring-boot学习笔记   spring-boot graphql  

一直对graphql挺好奇的,都说这货是前端使用json来查询数据,后端只要把graphql风格的接口开发好了,schema定义的没问题,后面前端想怎么改数据结构就怎么改,完全不用后端操心了,今天折腾了一下,算是入门了,分享给大家

几个问题

graphql是什么框架?

它不是框架,而是一种风格,类似于 restful 风格的接口一样,所以它有各种语言版本的实现,本篇文章用的就是java语言实现的

graphql接口的数据哪来的?

数据还是通过数据库查询的,无论你用的是hibernate还是mybatis,跟graphql都没有关系,该怎么查数据还怎么查就行

为什么在调用graphql接口的时候,定义的schema里有其它对象,那其它对象里数据是怎么来的?

比如Book对象里有Author对象,显示书的作者信息,那么前端在调用时定义了Book对象里也要显示Author的信息,这个数据的嵌套加载是在后端通过代码实现的

首先查询出Book对象,然后根据Book对象里的authorId再查询一次Author数据,然后封装到Book对象里,这样前端拿到的json对象里就有两个对象的数据了

说白了,数据还是要通过orm框架查询的,只是将不同数据封装到一个对象里的这步被graphql-java这个框架做了

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

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

spring-boot 集成 shiro 自定义密码验证 自定义freemarker标签根据权限渲染不同页面

2018-12-05   阿辉   spring-boot学习笔记   spring-boot shiro  

项目里一直用的是 spring-security ,不得不说,spring-security 真是东西太多了,学习难度太大(可能我比较菜),这篇博客来总结一下折腾shiro的成果,分享给大家,强烈推荐shiro,真心简单 : )

引入依赖

<dependency>
  <groupId>org.apache.shiro</groupId>
  <artifactId>shiro-spring</artifactId>
  <version>1.4.0</version>
</dependency>

利用frp内网穿透实现用自家电脑发布网站(不用买服务器了)

2018-10-18   阿辉   Golang学习笔记   frp  

一直想总结一下使用frp的经验,今天来写一下

我的yiiu.co域名的网站都是用frp做的内网穿透实现的,服务器就在我身边,发布的网站服务外网都访问,下面就来说说我的配置方法

下载frp

这个不多说,选择好自己的平台就可以了,注意版本号一定要一致,下载地址

打开可以看到 linux 平台有很多版本,386, amd64, arm, arm64 等等,这里说一下,如果你服务器是32位,就下载 386,如果你服务器是64位的,而且你又不能分清cpu是arm架构的还是amd架构的,那也选386

总之一句话,对系统架构分不清的就只下载386的就对了

pdf.js使用教程备忘

2018-08-30   阿辉   nodejs学习笔记   pdf.js  

前言:如果使用chrome浏览器的话,可以安装一个插件 PDF Viewer 也是一样的效果

spring-boot项目freemarker模板使用jquery.pjax实现页面无刷新渲染

2018-08-21   阿辉   spring-boot学习笔记   spring-boot  

先看效果图

pjax是啥,自行百度,关于它的兼容性可以看一下我另一篇博客:https://tomoya92.github.io/2017/04/25/nodejs-pjax/