飞污熊博客

静下心来做一件事

MongoDB是一个高性能、开源、无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。 适合对大量或者无固定格式的数据进行存储,比如:日志、缓存等。对事物支持较弱,不适用复杂的多文档(多表)的级联查询。

MongoDB的适用场景:

  1. 在应用服务器的日志记录
  2. 存储一些监控数据
  3. 应用不需要事务及复杂 join 支持
  4. 应用需要2000-3000以上的读写QPS
  5. 应用需要TB甚至 PB 级别数据存储
  6. 应用发展迅速,需要能快速水平扩展
  7. 应用要求存储的数据不丢失
  8. 应用需要99.999%高可用
  9. 应用需要大量的地理位置查询、文本查询

本篇将介绍如何在SpringBoot中使用MongoDB数据库。

阅读全文 »

Hibernate与MyBatis都是流行的持久层开发框架,前一遍介绍了怎样在SpringBoot中集成MyBatis,本篇来介绍如何集成Hibernate作为DAO层。

Hibernate 是一个高性能的对象/关系映射(ORM)持久化存储和查询的服务,不仅负责从Java类到数据库表的映射 (还包括从Java数据类型到SQL数据类型的映射),还提供了面向对象的数据查询检索机制,从而极大地缩短了手动处理SQL和JDBC上的开发时间。 同时,Hibernate还实现了JPA规范,在SpringBoot中,JPA的默认实现就是使用的Hibernate。

阅读全文 »

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs映射成数据库中的记录。

使用MyBatis的时候需要自己手动编写SQL语句,也有代码自动生成工具来简化开发,我一般会使用Mybatis-Plus增强工具包来简化MyBatis的开发。

Mybatis-Plus官网:https://github.com/baomidou/mybatis-plus

同时它还提供了与SpringBoot的集成starter,非常的方便,本篇我将讲解如何在SpringBoot中集成MyBatis-Plus。

阅读全文 »

Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点:

  1. Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。
  2. Thymeleaf 开箱即用的特性。它提供标准和spring标准两种方言,可以直接套用模板实现JSTL、 OGNL表达式效果,避免每天套模板、该jstl、改标签的困扰。
  3. Thymeleaf 提供spring标准方言和一个与 SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器、国际化等功能。

目前最新版本是Thymeleaf 3,官网地址:http://www.thymeleaf.org

本篇将介绍如何在SpringBoot中集成Thymeleaf构建Web应用。

阅读全文 »

这一篇会介绍git的一些常用技巧,开发中经常会遇到的问题,让我们感受git的强大之处。

cherry-pick我直接把它翻译成’摘樱桃’可以不?

git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作。假设我们有个稳定版本的分支master, 另外还有个开发版本的分支dev,我们不能直接把两个分支合并,这样会导致稳定版本混乱,但是又想增加一个dev中的功能到master中, 这里就可以使用cherry-pick了,其实也就是对已经存在的commit 进行再次提交。

简单用法:

1
git cherry-pick <commit id>

注意:当执行完 cherry-pick 以后,将会生成一个新的提交;这个新的提交的哈希值和原来的不同,但描述一样;

做一个简单演示,一个readme.txt文件、两个分支(master/dev)

阅读全文 »

GitHub用了这么久才发现其实上面也可以做很多好玩的东西,让我可以更加喜欢它了。 这里我总结自己知道的,肯定还有一些我还不知道的,以后看到了就补充上去。

拖拽代码到Gist,打开https://gist.github.com/,然后直接把本地源文件拖过去,它里面的代码就移过去了。

阅读全文 »

在实际使用git的过程中,我发现最常遇到的就是撤销,git里面有reset、checkout、revert来帮助我们撤回修改。 但是这几个命令有时候不是很好理解,虽然我在第一篇里面已经讲解过撤销,但是我还是想用专门用一篇来详细讲解如何撤销版本和文件。

之前只是讲了几个简单的命令教你怎么撤销,但是其中的原理如果你不懂的话就不会很好的使用这几个命令。 参考《Pro Git》第2版本中的重置揭密部分,为大家揭开撤销的原理和神秘面纱。

阅读全文 »

Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早, 肯定只有一台机器有一个原始版本库,此后,别的机器可以”克隆”这个原始版本库, 而且每台机器的版本库其实都是一样的,并没有主次之分。

实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机, 其他每个人都从这个”服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里, 也从服务器仓库中拉取别人的提交。也就是说这个”服务器”只不过是用来作为一个桥梁, 提供给各个主机进行修改的交换。

阅读全文 »

终于要介绍git的杀手级特性分支了,这也是大部分人使用git的原因。 其他版本控制系统如SVN等都有分支管理,但是用过之后你会发现,这些版本控制系统创建和切换分支比蜗牛还慢, 简直让人无法忍受,结果分支功能成了摆设,大家都不去用。 Git的分支是与众不同的,无论创建、切换和删除分支,Git在1秒钟之内就能完成!无论你的版本库是1个文件还是1万个文件。

阅读全文 »