JSF 2.3新特性及改进增强

JavaServer Faces(JSF)一直以来是Java EE平台上开发Web应用程序中使用最广泛的框架之一。该框架于2002年推出,允许程序员使用组件构建Web视图,而不是从头开始构建Web视图,从而提供了构建Web应用程序的不同...

Retrofit实战及日志拦截

Retrofit目前最新版本是2.2.0,要实现Retrofit的日志拦截功能,你需要在build.gradle中添加compile 'com.squareup.okhttp3:logging-interceptor:3.6.0'在开始实现...

MyBatis SelectProvider注解动态SQL

MySQL数据表创建: DROP TABLE IF EXISTS `tb_employee`;CREATE TABLE `tb_employee` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `log...

Java泛型擦除及运行时类型获取

本文将介绍 Java 泛型的擦除和运行时泛型获取这两个看似矛盾的特性。Java 的泛型擦除程序员界有句流行的话,叫 talk is cheap, show me the code,所以话不多说,看代码。代码一Class c1 = new A...

Java静态代理和动态代理

代理模式设想你的项目依赖第三方,但是你需要对其接口做一些数据检验、性能数据记录、异常处理等,合适的方法就是使用设计模式里的代理模式。代理模式是常用的java设计模式,代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把...

Java JShell交互式编程环境

JShell——Java 9 的交互式编程环境Java 9 的代码由于提供了新特性,所以有些代码并不支持向后兼容。也就是说,用 Java 9 写的代码,有可能在 Java 8 或更早版本的 JDK 上不能运行。1. 在操作系统上安装开发所需...

Java Stream API流水线深入理解

Stream API,用起来真的很爽,但简洁的方法下面似乎隐藏着无尽的秘密,如此强大的API是如何实现的呢?Pipeline是怎么执行的,每次方法调用都会导致一次迭代吗?自动并行又是怎么做到的,线程个数是多少?本节我们学习Stream流水线...

Thumbnailator图片缩放、旋转、加水印

Thumbnailator 是个开源的Java 项目,它提供了非常简单流畅的 API 来对图片进行缩放、旋转以及加水印的处理。有多简单呢?简单到一行代码就可以完成图片处理。形式如下:Thumbnails.of(new File("path/...

JGroups组播聊天Chat入门实例

    JGroups是一个开源的纯java编写的可靠的群组通讯工具。其工作模式基于IP多播,但可以在可靠性和群组成员管理上进行扩展。其结构上设计灵活,提供了一种灵活兼容多种协议的协议栈。      JGroups 多线程的方式实现了多个协...

Quartz实现Java任务调度

Quartz框架核心概念Quartz对任务调度进行了高度抽象,提出了3个核心概念,并在org.quartz包中通过接口和类进行了描述。任务:就是执行的工作内容。Quartz提供Job接口来支持任务定义触发器:定义触发Job执行的...