
java
文章平均质量分 79
攻城狮-正
这个作者很懒,什么都没留下…
展开
-
源码分析 - MyBatis Plus 多数据源踩坑
公司准备把报表数据库从MySQL迁到TiDB,先用几个功能试点。于是在系统上需要配置多个数据源。之前在上家公司用MyBatis时配置过4个数据源,MyBatis Plus下应该是大同小异。不出意外的话就要出意外,结果还是踩了坑。...原创 2022-07-19 01:23:03 · 1637 阅读 · 1 评论 -
用Postman测试需要授权的接口
Postman是一款免费的http模拟请求工具,常用来测试开发接口。实际场景中,很多接口是需要授权才能使用。这就需要Postman获取授权,把返回的token保存,在调用其他接口时连同token一起传递。原创 2022-06-16 18:48:33 · 1802 阅读 · 0 评论 -
JAVA模块化 - JDK生成JRE
手写一个JAVA小程序,因为使用了Java11相关的API,必需要Jre11才能运行。到Jdk安装目录中没找Jre,于是去官网下载Jre11,发现官方只提供Jre8。原来自Jdk11之后,Jdk中不带Jre,需要Jre可使用Jdk生成。Java11是Jdk8之后的第一个长期支持版本,到2026年结束。第二个长期支持版本Java17生命结束只到2024年。Java8支持到2030年。所以目前最推荐的版本是Java8和Java11。下载安装完Jdk11,打开Jdk目录可以看到多出jmods文件夹,这是因为J原创 2022-05-21 00:13:22 · 2264 阅读 · 0 评论 -
Java 加密解密和数字签名
在做项目中,只要涉及敏感信息,或者对安全有一定要求的场景,都需要对数据进行加密。在Java中原生API即可实现对称加密与非对称加密,并支持常用的加密算法。对称加密对称加密使用单钥完成加解密,加密和解密采用相同的密钥。对称加密的速度快,常用于大量数据进行加密。主流的算法有:AES,3DES。生成3DES密钥/** * 对称加密-3DES算法,取代旧的DES */SecretKey desKey = KeyGenerator.getInstance("DESede").generateKey.原创 2021-12-21 11:06:54 · 694 阅读 · 0 评论 -
安装Hyper-V/Docker后IDEA不能启动
安装Hyper-V/Docker后IDEA不能启动打开Hyper-V功能,安装Docker for Windows后,打开IDEA一直停在启动界面无响应。找到日志文件,错误信息:java.net.BindException: Address already in use: bindIDEA的日志文件在用户目录下的 AppData\Local\JetBrains\对应idea版本\ieal.log (AppData是系统隐藏文件夹)看错误信息应该是什么端口被占用。系统刚安装Hyper-V虚拟机和Do原创 2021-10-11 11:38:45 · 371 阅读 · 0 评论 -
解析HTTP协议实现文件上传
在J2EE开发中,使用浏览器上传文件很简单,服务器用Apache的Commons FileUpload实现就可以了。但是在开发C/S架构的程序时就需要自己处理。用代码实现文件上传需要对表单的multipart/form-data有所了解。表单默认情况下使用 application/x-www-form-urlencoded ,在multipart/form-data中Content-Type是这样的:Content-Type: multipart/form-data; boundary=--******原创 2021-06-07 22:51:09 · 899 阅读 · 0 评论 -
Java 提取EXIF信息批量重命名
手机或照机拍摄的照片名称通常是"IMG_001.JPG"这种格式,这种文件名称是无意义的。使用照片拍摄时间命名可以让我们在多年以后查找照片时根据文件名就能快速筛选出某一时间段的照片。原始照片或视频是带有EXIF信息的。这些信息是设备在拍摄时生成,记录了照片的拍摄时间,设备信息,拍摄GPS位置等信息,在文件属性中可以查看到:图片APP和网盘软件中图片时间线也是提取EXIF信息生成的。如果对照片进行处理,如美化操作,另存为时可能会丢失EXIF信息,或者EXIF信息被改写,会导致识别信息不准。我以前备份的原创 2021-04-23 01:48:15 · 407 阅读 · 0 评论 -
Java 图片压缩生成缩略图和水印
如今终端设备摄像头分辨率越来越高,拍照一张图片几兆甚至几十兆,我们需要对用户上传的图片适当压缩,在满足用户对图片质量的要求同时节约存储空间,减少网络传输,提高图片加载速度。本章将用Java原生API和第三方库Thumbnailator操作图片。Java 图片压缩在Java中,可以使用 javax.imageio 包中工具对图片进行缩放和压缩。等比缩放图片并压缩:// 指定缩放宽高int width = 200, height = 200;File srcImgFile = new File("原创 2021-03-04 11:20:26 · 394 阅读 · 1 评论 -
Java 收发邮件 (Jakarta Mail)
Jakarta Mail API提供了一个独立于平台和协议的框架来构建邮件,完成邮件接收与发送功能。它也包含在Java EE平台中,也可以和Java SE平台一起使用。Jakarta Mail的前生是JavaMail。JavaMail最后一个版本是于2018年8月发布,已经停止更新。新项目应该使用Jakarta Mail。现在很多邮箱默认关闭smtp,pop3,imap服务,需要在设置中手动开启。如果邮箱是使用授权码,则需要生成授权码(代替下文中密码),这种方式更安全。依赖注意Jak原创 2021-03-03 17:38:12 · 15967 阅读 · 4 评论 -
Java 生成带Logo和文字描述的二维码
ZXing 是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口。Zxing 可以实现使用手机的内置的摄像头完成条形码的扫描及解码。本章讲解用 ZXing 生成和扫码二维码。依赖在Java项目中pom.xml加入:<dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version原创 2021-03-01 23:53:33 · 1355 阅读 · 0 评论 -
Java 多线程并发编程
在Java中开启新线程执行,一般做法是继承Runnable接口,实现run(),然后使用new Tread().start(run)。如果我们需要对执行结果处理或者线程限制,使用Java提供的并发工具会使多并发编程变得简单。Java并发工具在 java.util.concurrent 包及其子包 java.util.concurrent.atomic 和 java.util.concurrent.locks 下。本章会介绍相关工具用法。创建在并发工具中我们用 Executor 代替 Thread 异步原创 2021-02-10 15:05:16 · 902 阅读 · 1 评论 -
JAVA时间工具包 - java.time
从JDK8开始,JAVA提供了新的时间处理方法用来代替旧的日期类。本章主要讲它们的用法以及和旧日期类互转。日期和时间Java 新的日期工具类在 java.time 包及子包中 ,日期类主要有 LocalDateTime、LocalDate、LocalTime ,这三个API类很相似,以下是常用API及说明。now()静态方法,获取当前时间日期。示例:LocalDateTime.now()of()静态方法,指定日期时间生成LoalDateTime。示例:LocalDateTime.of(2020,原创 2021-02-09 14:16:51 · 592 阅读 · 3 评论 -
Spring Boot 集成 Redis
Redis 是一个高性能的Key-Value内存数据库。Spring 官方对 Redis 提供支持,使用 Spring Data Redis 可以选择 Jedis 或 Lettuce 客户端,在 Spring Boot 项目中操作 Redis 简单方便。Spring Data Redis 是 Spring Data 家族的一部分,它提供了配置方法和访问 Redis 接口的抽象。在内底层实现上,我们可以选择使用 Jedis 或 Lettuce 来访问 Redis 数据库。Jedis 和 Lettuce 都原创 2021-01-22 19:16:10 · 250 阅读 · 0 评论 -
Spring Boot 集成 JUnit 单元测试
为自己的应用编写单元测试是一个很好的习惯。在Java开发中最流行的测试工具非JUnit莫属,它已经成为Java单元测试的事实标准。Spring Boot测试模块不仅集成JUnit框架,还提供了许多实用程序和注释,方便我们测试应用。1. 添加依赖在 pom.xml 文件中引入 spring-boot-starter-test<dependency> <groupId>org.springframework.boot</groupId> <artifactId原创 2021-01-18 20:24:14 · 1311 阅读 · 0 评论 -
Spring Boot 集成 Spring JDBC
Spring JDBC模块负责访问操作数据库,在中小型项目中使用Spring框架自己的JdbcTemplate方便快捷,而且稍加封装完全不输MyBatis框架。Spring 生态中的 Spring Data JDBC 和 Spring Data JPA 就是对原生JDBC的加强,它提供查询数据库并映射成实体的功能,和MyBatis有很多相似之处。关于 Spring Data 相关的知识会另起新篇。引入Maven依赖集成Spring JDBC只需在pom.xml中引入:<dependen原创 2021-01-15 01:39:44 · 271 阅读 · 0 评论 -
Spring Boot 集成 Spring MVC
Spring MVC是一款优秀的、基于MVC思想的应用框架,它是Spring的一个子框架。是当前最优秀的MVC框架。Spring Boot整合Spring MVC只需在pom.xml中引入<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version&原创 2021-01-14 16:14:51 · 383 阅读 · 0 评论 -
快速开发Spring Boot应用
越来越多的Java应用基于Spring Boot,那么如何快速创建应用并开发布署呢?创建项目方式一:Spring InitializrSpring initializr是Spring官网提供的工具,只要选择Spring Boot版本,输入项目信息,就会自动生成项目工程,用Eclipse或Ideal导入,即可开始。Spring Initializr网址:start.spring.io方式二:引入Spring Boot依赖包使用Spring Initializr生成的maven项目继承了Sprin原创 2021-01-13 15:21:10 · 141 阅读 · 0 评论