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

使用undertow封装一个自动转发请求到不同controller的mvc框架(增强版,用到了扫包,反射等)

2019-04-10   朋也   java学习笔记   java  

上一篇博客介绍了使用java动态代理来根据请求的url路径动态的转发到不同的controller来执行不同的逻辑的方法

这一篇来介绍使用java反射的方式实现方法

先看下效果图

使用动态代理跟undertow容器实现一个mvc框架,根据请求路径通过代理调用不同的方法执行

2019-04-09   朋也   java学习笔记   java  

undertow.io官网上有一个helloworld版的server demo 代码,相当的简单

想到了java里的动态代理,是不是可以根据请求的地址path,再经过动态代理去执行不同的方法,然后渲染模板返回页面,这不就是一个mvc框架吗

下面来折腾一下

首先要实现一下动态代理

Java里观察者模式(订阅发布模式)

2019-04-08   朋也   java学习笔记   java  

在公司开发项目,如果碰到一些在特定条件下触发某些逻辑操作的功能的实现基本上都是用的定时器

比如用户注册完后,发送邮件,为了防止邮件发送失败或者发送邮件比较耗时,一般也都是通过定时器去扫库里注册没有发邮件的用户数据

再比如一个订单,在改变状态后,要归档,这也是通过定时器来实现的,扫描订单的数据,通过判断状态来做相对应的处理

但这样处理的话,定时器就会越来越多,总觉得不太好

然后,从一些资讯网站上的订阅功能想到了是否可以使用java里的观察者模式来解决这个问题,比如定单的状态改变了,这是一个主题,直接通知订阅这个主题的实现类来处理这个订单,这样不是更方便吗,于是从观察者模式入手,折腾了一下

GraphQL风格的接口发送GET、POST请求

2019-04-06   朋也   spring-boot学习笔记   spring-boot graphql  

上一篇 博客最后留下了几个问题,其中有一个是graphql风格接口怎么发送post请求保存数据,这一篇来介绍一下方法

准备环境

graphql风格接口的搭建可以看 上一篇 博客,这里不多说

既然要保存数据,这篇博客是在上一篇博客的基础了将数据源改成了jpa从数据库里查询的了,这一块不多说

CSS3动画学习,用纯CSS来开发自己想要的动画效果

2019-04-04   朋也   css学习笔记   css  

上一篇 文章整理了11个开源的加载动画,这一篇来学习一下动画属性的意思跟用法

知其然知其所以然

动画属性

css3中动画属性有

  • animate-name 动画名
  • animate-duration 动画持续时间
  • animate-delay 延时执行动画时间
  • animate-direction 动画执行方向
  • animation-fill-mode 动画填充模式
  • animation-iteration-count 动画执行次数
  • animation-play-state 动画播放状态,指定动画播放还是暂停 [paused, running]
  • animation-timing-function 指定动画的播放时从一个状态过滤到另一个状态的速度曲线

简洁好看的纯css实现的加载动画,来自SpinKit

2019-04-04   朋也   css学习笔记   css  

声明:本篇博客源码来自 SpinKit

效果图

源码

<div class="spinner"></div>

create-react-app创建的项目部署在github pages上的方法,顺便绑定个人域名,增加https支持

2019-04-04   朋也   杂项   github-pages  

去年把自己折腾的一些项目整理了一下,然后用react开发了一个页面展示,一直都是打包好后,用nginx部署在自己的小水管服务器上的,今天弄了一下github pages, 还真让我折腾成功了,目前访问上没有变化,只是服务器从我个人服务器转到了github pages服务,折腾过程分享给大家

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这个框架做了

使用Github授权登录个人网站步骤整理(备忘)

2019-03-14   朋也   nodejs学习笔记   koa  

开发网站时懒得写登录注册那堆东西就会想到用Github授权登录,为啥会选择Github呢?因为它不需要审核呀,到Github上申请完就可以用了

如果用微博,QQ这种授权登录,首先也是要申请,但它们都要审核,如果接入的是网站,那网站还要备案才能通过,审核时间还很长

申请

地址:https://github.com/settings/developers

具体操作可以参见pybbs的文档:https://tomoya92.github.io/pybbs/#/zh-cn/oauth

使用koa2创建web项目

2019-03-11   朋也   nodejs学习笔记   koa  

Github上有一个express风格的koa脚手架,用着挺方便,一直以来使用koa开发web项目用的也都是那个脚手架,今天想自己从头搭一个web项目,就折腾了一下

脚手架地址:https://github.com/17koa/koa-generator

初始化

使用 npm init 初始化一个nodejs项目

mkdir koa-demo
cd koa-demo
npm init

一直回车即可,创建好之后目录里会有一个package.json文件