在有些时候,我们拿到了一张图片的二进制数据,但却不知道这张图片应该是什么格式。本文在此记录使用 Java 代码获取图片格式的一种方式:FileInputStream srcInputStream = new FileInputStream("D:\\tmp\\qr.png"); ImageInputStream imageInputStream = ImageIO.createImageInputStream(srcInputStream); // 获取 ImageReader 对象的迭代器 Iterator<ImageReader> iterator = ImageIO.getImageReaders(imageInputStream); // 如果能获得 ImageReader 对象则说明流中含有图片文件 while (iterator.hasNext()) { // ImageReader 对象的 getFormatName() 方法可以获得图片格式 System.out.println(iterator.next().getFor
1、简介Java 处理日期、日历和时间的方式一直为社区所诟病,将 java.util.Date 设定为可变类型,以及 SimpleDateFormat 的非线程安全使其应用非常受限。伴随 lambda、streams 以及一系列的小优化,Java8 推出了全新的日期时间 API,不同于老版本,新 API 基于 ISO 标准日历系统,java.time 包下的所有类都是不可变类型且是线程安全的。2、关键类类名描述Instant在时间线上的瞬间点Duration基于时间的时间量(持续时间、时间差),如:34.5 秒LocalDate日期的描述,如:2007-12-03LocalTime时间的描述,如:10:15:30LocalDateTime日期和时间的描述,如:2007-12-03T10:15:30PeriodISO-8601日历系统中的日期时间,例如:2年3个月4天ZoneOffset与格林威治/ UTC的时区偏移量,如:+02:00ZonedDateTime具有时区的日期时间的不可变表示,如:2007-12-03T10:15:30+01:00 Europe/ParisClock使用时
微软输入法快捷键冲突(完)
最近工作中使用到 Spring Data JPA 做持久层框架,个人感觉这个框架在做常规的查询时非常方便,在做定制化的高级查询时不够灵活。尤其是处理结果集的映射没有 MyBatis 方便。本文概要:1、spring-data-jpa 提供的 @Query 注解可以执行原生 SQL,其返回类型为 List<Object[]>2、优雅地将 List<Object[]> 映射到我们自定义的实体中3、使用到的知识点:自定义注解、反射直接上代码说明: 此处的案例比较简单,只是为了演示此方案,复杂的查询使用方法一样。实体类@Entity public class User { @Id private Integer id; private String username; private String name; private Integer age; private BigDecimal balance; // getter、setter... }VO 对象import cn.huangxulin.jpa.util
Spring 最为核心的理念是 IoC(控制反转)和 AOP(面向切面编程),其中 IoC 是 Spring 的基础。本文我们将要讨论的是 Spring 的 IoC 容器,Spring IoC 容器可以容纳我们所开发的各种 Bean,并且我们可以通过描述获取各种发布在 Spring IoC 容器里的 Bean。Spring IoC容器的设计 Spring IoC 容器的设计主要是基于 BeanFactory 和 ApplicationContext 两个接口,其中 ApplicationContext 是 BeanFactory 的子接口之一,换句话说 BeanFactory 是 Spring IoC 容器所定义的最底层接口,而 ApplicationContext 是其高级接口之一,并且对 BeanFactory 功能做了许多有用的扩展,所以在绝大部分的工作场景下,都会使用 ApplicationContext 作为 Spring IoC 容器。下图展示了 Spring 相关的 IoC 容器接口的主要设计。Spring IoC 容器接口的设计从这张设计图中我们可以看到 Be