自从用上springboot开发项目后,服务都是打jar包然后通过 java -jar xx.jar 的方式来启动的
比如下面这个脚本就是启动pybbs的脚本,加载 prod 配置文件,启动后在后台运行,将日志写在jar包目录下的 log.file 里
开发pybbs最后选用的是Mybatis-Plus框架,不得不说,真香,想当初接触过jpa后,跟别人安利,说jpa多好用多简单,后来在公司项目里用时,随着项目渐渐复杂起来,多个表关联查询是真的不爽,哎呀,xml真香
这一篇博客来总结一下使用mybatis-plus的相关配置以及mybatis的一些用法
一直对graphql挺好奇的,都说这货是前端使用json来查询数据,后端只要把graphql风格的接口开发好了,schema定义的没问题,后面前端想怎么改数据结构就怎么改,完全不用后端操心了,今天折腾了一下,算是入门了,分享给大家
它不是框架,而是一种风格,类似于 restful 风格的接口一样,所以它有各种语言版本的实现,本篇文章用的就是java语言实现的
数据还是通过数据库查询的,无论你用的是hibernate还是mybatis,跟graphql都没有关系,该怎么查数据还怎么查就行
比如Book对象里有Author对象,显示书的作者信息,那么前端在调用时定义了Book对象里也要显示Author的信息,这个数据的嵌套加载是在后端通过代码实现的
首先查询出Book对象,然后根据Book对象里的authorId再查询一次Author数据,然后封装到Book对象里,这样前端拿到的json对象里就有两个对象的数据了
说白了,数据还是要通过orm框架查询的,只是将不同数据封装到一个对象里的这步被graphql-java这个框架做了
我这里使用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
使用mybatis-plus很爽,但没法自动创建数据库和表结构或者一些初始化数据,所以我在自己项目里加上了flyway(数据库迁移工具),还有一个类似的工具,liquibase,只不过后者用的是xml配置的,flyway直接执行的是sql,相比之下我更喜欢flyway
但集成flyway跟mybatis-plus却出现了问题,执行先后的问题,下面具体说明
不用指定版本号,springboot已经内置了
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
写博客总结的基本上都是工作中碰到的痛点,这次解决了一直想解决的问题,就是springboot启动服务的时候,自动去创建数据库的问题
用nodejs+mongodb开发网站的时候,如果没有在mongodb里创建数据库的时候,启动项目,nodejs服务会自动创建数据库,但java程序里确不行,总是报错,特别是 spring-boot 这样的项目,启动默认自动配置 dataSource
所以在程序启动之前要先把数据库创建好,虽然借助工具可以很方便的创建数据库,但哪有自动创建爽
项目里一直用的是 spring-security ,不得不说,spring-security 真是东西太多了,学习难度太大(可能我比较菜),这篇博客来总结一下折腾shiro的成果,分享给大家,强烈推荐shiro,真心简单 : )
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.4.0</version>
</dependency>
一直想总结一下使用frp的经验,今天来写一下
我的yiiu.co域名的网站都是用frp做的内网穿透实现的,服务器就在我身边,发布的网站服务外网都访问,下面就来说说我的配置方法
这个不多说,选择好自己的平台就可以了,注意版本号一定要一致,下载地址
打开可以看到 linux 平台有很多版本,386, amd64, arm, arm64 等等,这里说一下,如果你服务器是32位,就下载 386,如果你服务器是64位的,而且你又不能分清cpu是arm架构的还是amd架构的,那也选386
总之一句话,对系统架构分不清的就只下载386的就对了