随笔分类 - 0.JAVA技术
Java技术、Web开发
摘要:[TOC] 一、简介 在上一篇文章 "HBase 基础入门" 中,我们已经介绍了 HBase 的一些基本概念,以及如何安装使用的方法。 那么,作为一名 Javaer,自然是希望用 Java 的方式来与 HBase 进行对话了。 所幸的是,HBase 本身就是用 Java 编写的,天生自带了 Java
阅读全文
摘要:[TOC] 一、前言 关于 响应式 Reactive,前面的两篇文章谈了不少概念,基本都离不开下面两点: 响应式编程是面向流的、异步化的开发方式 响应式是非常通用的概念,无论在前端领域、还是实时流、离线处理场景中都是适用的。 有兴趣的朋友可以看看这两篇文章: "Reactive(1) 从响应式编程到
阅读全文
摘要:[TOC] 再谈响应式 在前一篇文章 "从Reactive编程到“好莱坞”" 中,谈到了响应式的一些概念,讲的有些发散。 但仅仅还是停留在概念的层面,对于实战性的东西并没有涉及。 所以大家看了后,或许还是有些不痛不痒。 响应式编程强调的是异步化、面向流的处理方式,这两者也并非凭空生出,而是从大量的技
阅读全文
摘要:[TOC] 在Java 的世界里,配置的事情都交给了 Properties,要追溯起来这个模块还是从古老的JDK1.0 就开始了的。 "天哪,这可是20年前的东西了,我居然还在用 Properties.." 然而,本文的主角并不是Properties,而是Yaml。这是新时代里微服务架构上的宠儿,和
阅读全文
摘要:[TOC] 一、简介 Profile的意思是配置,对于应用程序来说,不同的环境需要不同的配置。 比如: 开发环境,应用需要连接一个可供调试的数据库单机进程 生产环境,应用需要使用正式发布的数据库,通常是高可用的集群 测试环境,应用只需要使用内存式的模拟数据库 Spring框架提供了多profile的
阅读全文
摘要:[TOC] 背景 在日常开发时,我们常常需要 在SpringBoot 应用启动时执行某一段逻辑,如下面的场景: 获取一些当前环境的配置或变量 向数据库写入一些初始数据 连接某些第三方系统,确认对方可以工作.. 在实现这些功能时,我们可能会遇到一些"坑"。 为了利用SpringBoot框架的便利性,我
阅读全文
摘要:[TOC] 一、聊聊 WebSocket 从HTML5技术流行至今,WebSocket已经有非常广泛的应用: 在线游戏,提供实时的操作交互体验 社交平台,与好友实时的私信对话 新闻动态,获得感兴趣的主题信息推送 ... 这些场景,都需要 服务器能主动实时的给浏览器或客户端推送消息 ,注意关键词是主动
阅读全文
摘要:[TOC] SpringBoot 整合 PostGreSQL 一、PostGreSQL简介 PostGreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS),号称 世界上最先进的开源关系型数据库 经过长达15年以上的积极开发和不断改进,PostGreSQL已在可靠性、稳定性、数据一致性
阅读全文
摘要:[TOC] 关于 H2 H2 数据库是一个纯 Java 实现的开源的嵌入式数据库,笔者第一次使用时还是在多年前的一个客户端项目中。 当时就觉得这个数据库很方便,如果你希望你的应用程序能"自带数据库,随处运行”,那么H2是个不错的选择。 H2 的由来 H2 的前身是 HyperSQL(HSQL),后者
阅读全文
摘要:[TOC] 前言 在谈SpringBoot 2.x 之前,先来聊点别的: 首先是Java 语言,这门长期占据编程语言排行榜首位的语言到底有什么魔力? 大家的看法是多种多样的,比如: 面向对象设计,使用简单,可以很快速的入门; 开源生态做得好,很多可重用的组件,拿来即用; 跨平台,高性能,是做后台开发
阅读全文
摘要:[TOC] 简介 前面的文章中,我们介绍了如何在SpringBoot 中使用MongoDB的一些常用技巧。 那么,与使用其他数据库如 MySQL 一样,我们应该怎么来做MongoDB的单元测试呢? 使用内嵌数据库的好处是不需要依赖于一个外部环境,如果每一次跑单元测试都需要依赖一个稳定的外部环境,那么
阅读全文
摘要:[TOC] 一、关于 MongoDB MongoDB 目前非常流行,在最近的 "DB Engine" 排名中居第5位,仅次于传统的关系型数据库如 Oracle、Mysql。 然而在非关系型数据库领域,MongoDB已经持续成为佼佼者一段时间了,这与 MongoDB的一些优势存在一定关系: 无模式(S
阅读全文
摘要:[TOC] 一、背景 在 "补习系列(3) springboot 几种scope" 一文中,笔者介绍过 Session的部分,如下: 对于服务器而言,Session 通常是存储在本地的,比如Tomcat 默认将Session 存储在内存(ConcurrentHashMap)中。 但随着网站的用户越来
阅读全文
摘要:[TOC] 一、简介 在 "补习系列(A3) springboot redis 与发布订阅" 一文中,我们介绍了使用 Redis 实现消息订阅发布的机制,并且给出了一个真实用例。 然而,绝大多数场景下 Redis 是作为缓存被使用的(这是其主要优势)。除此之外,由于Redis 提供了 AOF以及RD
阅读全文
摘要:一、背景 spring data mongo 实现了基于 MongoDB 的 ORM Mapping 能力, 通过一些简单的注解、Query封装以及工具类,就可以通过对象操作来实现集合、文档的增删改查; 在 SpringBoot 体系中,spring data mongo 是 MongoDB Jav
阅读全文
摘要:[TOC] 一、订阅发布 订阅发布 是一种常见的设计模式,常见于消息系统的场景。 如下面的图: [图来自百科] 消息发布者是消息载体的生产者,其通过某些主题来向 调度中心 发送消息; 而消息订阅者会事先向 调度中心 订阅其 "感兴趣" 的主题,随后会获得新消息。 在这里, 调度中心 是一个负责消息控
阅读全文
摘要:[TOC] 一、邮件协议 在谈谈代码之前,先来了解下邮件的基本协议。 电子邮件协议是基于TCP层定义的,主要有下面几个: SMTP协议 SMTP 是 Simple Mail Transfer Protocol 的简称,即简单邮件传输协议,是发送协议。 它定义了一组从源地址到目的地址传输邮件的规范,并
阅读全文
摘要:[TOC] 一、文件上传原理 一个文件上传的过程如下图所示: 1. 浏览器发起 HTTP POST 请求,指定请求头: Content Type: multipart/form data 2. 服务端解析请求内容,执行文件保存处理,返回成功消息。 "RFC1867" 定义了HTML表单文件上传的处理
阅读全文
摘要:[TOC] 简介 在早前的博客中曾经写过 Spring 程序通过 Bean 映射实现配置信息的读取。 在SpringBoot 框架中读取配置的方式变得非常多样,这导致读者在搜寻资料时反而容易迷糊。 到底,SpringBoot 是按什么顺序加载配置? 相应的,我们该选择什么样的方式去读取? 一、配置样
阅读全文
摘要:[TOC] 简介 大多数的应用程序都离不开定时器,通常在程序启动时、运行期间会需要执行一些特殊的处理任务。 比如资源初始化、数据统计等等,SpringBoot 作为一个灵活的框架,有许多方式可以实现定时器或异步任务。 我总结了下,大致有以下几种: 1. 使用 JDK 的 TimerTask 2. 使
阅读全文