spring-boot-async
SpringBoot 教程之处理异步请求@EnableAsync 注解要使用 @Async,首先需要使用 @EnableAsync 注解开启 Spring Boot 中的异步特性。 1234@Configuration@EnableAsyncpublic class AppConfig {} 更详细的配置说明,可以参考:AsyncConfigurer @Async 注解支持的用法(1)无入参无返回值方法 您可以用 @Async 注解修饰方法,这表明这个方法是异步方式调用。换句话说,程序在调用此方法时会立即返回,而方法的实际执行发生在已提交给 Spring TaskExecutor 的任务中。在最简单的情况下,您可以将注解应用于返回 void 的方法,如以下示例所示: 1234@Asyncvoid doSomething() { // this will be executed asynchronously} (2)有入参无返回值方法 与使用 @Scheduled 注释注释的方法不同,这些方法可以指定参数,因为它们在运行时由调用者以...
Spring 资源管理
Spring 资源管理 Version 6.0.3 Resource 接口相对标准 URL 访问机制,Spring 的 org.springframework.core.io.Resource 接口抽象了对底层资源的访问接口,提供了一套更好的访问方式。 12345678910111213141516171819202122232425262728public interface Resource extends InputStreamSource { boolean exists(); boolean isReadable(); boolean isOpen(); boolean isFile(); URL getURL() throws IOException; URI getURI() throws IOException; File getFile() throws IOException; ReadableByteChannel readableChannel() throws IOException; l...
PostgreSQL 应用指南
PostgreSQL 应用指南 PostgreSQL 是一个关系型数据库(RDBM)。 关键词:Database, RDBM, psql 安装 本文仅以运行在 Centos 环境下举例。 进入官方下载页面,根据操作系统选择合适版本。 官方下载页面要求用户选择相应版本,然后动态的给出安装提示,如下图所示: 前 3 步要求用户选择,后 4 步是根据选择动态提示的安装步骤 (1)选择 PostgreSQL 版本 (2)选择平台 (3)选择架构 (4)安装 PostgreSQL 的 rpm 仓库(为了识别下载源) 1yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm (5)安装客户端 1yum install postgresql10 (6)安装服务端(可选的) 1yum install postgresql10-server (7)设置开机启动(可选的) 123/usr/pgsql-10/bin/pos...
H2 应用指南
H2 应用指南概述H2 是一个开源的嵌入式数据库引擎,采用 java 语言编写,不受平台的限制。同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。 使用说明H2 控制台应用H2 允许用户通过浏览器接口方式访问 SQL 数据库。 进入官方下载地址,选择合适版本,下载并安装到本地。 启动方式:在 bin 目录下,双击 jar 包;执行 java -jar h2*.jar;执行脚本:h2.bat 或 h2.sh。 在浏览器中访问:http://localhost:8082,应该可以看到下图中的页面: 点击 Connect ,可以进入操作界面: 操作界面十分简单,不一一细说。 嵌入式应用JDBC API123Connection conn = DriverManager. getConnection("jdbc:h2:~/test");conn.close(); 详见:Using the JDBC API 连接池12345import...
sqlite
SQLite SQLite 是一个无服务器的、零配置的、事务性的的开源数据库引擎。 SQLite 简介SQLite 是一个C语言编写的轻量级、全功能、无服务器、零配置的的开源数据库引擎。 SQLite 的设计目标是嵌入式的数据库,很多嵌入式产品中都使用了它。SQLite 十分轻量,占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。SQLite 能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。 SQLite 大小只有 3M 左右,可以将整个 SQLite 嵌入到应用中,而不用采用传统的客户端/服务器(Client/Server)的架构。这样做的好处就是非常轻便,在许多智能设备和应用中都可以使用 SQLite,比如微信就采用了 SQLite 作为本地聊天记录的存储。 优点 SQLite 是自给自足的,这意味着不需要任何外部的依赖。 SQLite 是无服务器的、零配置的,这意味着不需要安装...
Spring 集成 Mybatis
Spring 集成 MybatisMybatis 官网 是一款持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 快速入门要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于类路径(classpath)中即可。 如果使用 Maven 来构建项目,则需将下面的依赖代码置于 pom.xml 文件中: 12345<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>x.x.x</version></dependency> 从 XML 中构建 SqlSessionFactor...
深入理解 Java 基本数据类型
深入理解 Java 基本数据类型 数据类型分类Java 中的数据类型有两类: 值类型(又叫内置数据类型,基本数据类型) 引用类型(除值类型以外,都是引用类型,包括 String、数组) 值类型Java 语言提供了 8 种基本类型,大致分为 4 类 基本数据类型 分类 比特数 默认值 取值范围 说明 boolean 布尔型 8 位 false {false, true} char 字符型 16 位 '\u0000' [0, $2^{16} - 1$] 存储 Unicode 码,用单引号赋值 byte 整数型 8 位 0 [-$2^7$, $2^7 - 1$] short 整数型 16 位 0 [-$2^{15}$, $2^{15} - 1$] int 整数型 32 位 0 [-$2^{31}$, $2^{31} - 1$] long 整数型 64 位 0L [-$2^{63}$, $2...
深入理解 Java 方法
深入理解 Java 方法 方法(有的人喜欢叫函数)是一段可重用的代码段。 方法的使用方法定义方法定义语法格式: 123456[修饰符] 返回值类型 方法名([参数类型 参数名]){ ... 方法体 ... return 返回值;} 示例: 123public static void main(String[] args) { System.out.println("Hello World");} 方法包含一个方法头和一个方法体。下面是一个方法的所有部分: 修饰符 - 修饰符是可选的,它告诉编译器如何调用该方法。定义了该方法的访问类型。 返回值类型 - 返回值类型表示方法执行结束后,返回结果的数据类型。如果没有返回值,应设为 void。 方法名 - 是方法的实际名称。方法名和参数表共同构成方法签名。 参数类型 - 参数像是一个占位符。当方法被调用时,传递值给参数。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。 方法体 - 方法体包含具体的语句,定义...
深入理解 Java 数组
深入理解 Java 数组简介数组的特性数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。几乎所有程序设计语言都支持数组。 数组代表一系列对象或者基本数据类型,所有相同的类型都封装到一起,采用一个统一的标识符名称。 数组的定义和使用需要通过方括号 []。 Java 中,数组是一种引用类型。 Java 中,数组是用来存储固定大小的同类型元素。 数组和容器Java 中,既然有了强大的容器,是不是就不需要数组了? 答案是不。 诚然,大多数情况下,应该选择容器存储数据。 但是,数组也不是毫无是处: Java 中,数组是一种效率最高的存储和随机访问对象引用序列的方式。数组的效率要高于容器(如 ArrayList)。 数组可以持有值类型,而容器则不能(这时,就必须用到包装类)。 Java 数组的本质是对象Java 数组的本质是对象。它具有 Java 中其他对象的一些基本特点:封装了一些数据,可以访问属性,也可以调用方法。所以,数组是对象。 如果有两个类 A 和 B,如果 B 继承(extends)了 A,那么 A[] 类型的引用就可以指向 B[...
深入理解 Java 枚举
深入理解 Java 枚举简介enum 的全称为 enumeration, 是 JDK5 中引入的特性。 在 Java 中,被 enum 关键字修饰的类型就是枚举类型。形式如下: 1enum ColorEn { RED, GREEN, BLUE } 枚举的好处:可以将常量组织起来,统一进行管理。 枚举的典型应用场景:错误码、状态机等。 常用模板1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556public enum FileTypeEnum { /** * 配置文件 * */ CONFIG(1,"配置文件"), /** * 表结构文件 * */ SQL_DATA_FIELD(2,"表结构文件"), /** * sqlData普通文件 * */ SQL_...