JavaWeb
JavaWeb
陆氪和他的那些代码
小氪报主理人,惠权科技创始人。不仅分享日常代码爬坑,且每日拆解一条百里挑一的小众消息(Blink):新商业观察、科技互联网、公私域流量、自媒体运营、工具效率、职场生活、健康养身、奇怪的小知识和一些小道消息(添加主页小地球可直接看到源头朋友圈资讯)。
展开
-
JavaWeb - 面试官:为什么忘记密码要重置而不是告诉你原密码?
JavaWeb - 面试官:为什么忘记密码要重置而不是告诉你原密码?原创 2024-04-15 10:43:08 · 544 阅读 · 0 评论 -
JavaWeb - Expected URL scheme ‘http‘ or ‘https‘ but no colon was found
JavaWeb - Expected URL scheme 'http' or 'https' but no colon was found原创 2024-03-12 10:02:17 · 675 阅读 · 0 评论 -
JavaWeb - HttpRequest 三步走解决方案『getInputStream() has already been called for this request』
JavaWeb - HttpRequest 三步走解决方案『getInputStream() has already been called for this request』原创 2023-11-08 11:10:51 · 312 阅读 · 0 评论 -
OkHttp - maxRequests & maxRequestPerHost
OkHttp - maxRequests & maxRequestPerHost原创 2023-07-17 09:53:51 · 2249 阅读 · 0 评论 -
OKHttp - java.lang.IllegalArgumentException: Unexpected char 0x6211 at 0 in appname value: 中文名
OKHttp - java.lang.IllegalArgumentException: Unexpected char 0x6211 at 0 in appname value: 中文名原创 2023-06-16 17:41:06 · 224 阅读 · 0 评论 -
JavaWeb - 前端传参“空字符”大家族解析
JavaWeb - 前端传参“空字符”大家族解析原创 2023-05-25 14:25:11 · 588 阅读 · 0 评论 -
MapStruct - 自定义字段转换格式
MapStruct - 自定义字段转换格式原创 2023-05-23 18:51:46 · 912 阅读 · 0 评论 -
JavaWeb - Content is not allowed in prolog
BOM(Byte Order Mark),是UTF编码方案里用于标识编码的标准标记,在UTF-16里本来是FF FE,变成UTF-8就成了EF BB BF。微软做这种检测,但有些软件不做这种检测,而把它当作正常字符处理。微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节, windows上面的notepad等程序就是根据这三个字节来确定一个文本文件是ASCII的还是UTF-8的, 然而这个只是微软暗自作的标记, 其它平台上并没有对UTF-8文本文件做个这样的标记。原创 2022-12-14 19:00:30 · 392 阅读 · 0 评论 -
OKHTTP - SSLSocket duplex close failed
javax.net.ssl|DEBUG|79|Keep-Alive-Timer|2021-03-29 23:34:12.355 PDT|SSLSocketImpl.java:479|duplex close of SSLSocketjavax.net.ssl|DEBUG|79|Keep-Alive-Timer|2021-03-29 23:34:12.356 PDT|SSLSocketImpl.java:1569|close the underlying socket原创 2022-11-09 18:49:26 · 275 阅读 · 0 评论 -
MapStruct - Consider defining a bean of type in your configuration.
之前尝试过用INSTANCE方式来使用MapStruct,但作为Spring玩家,还是习惯于使用Bean的方式来注入,于是乎发现注入失败!MapStruct - Consider defining a bean of type in your configuration.其实还是 Maven 里 Lombok 和 MapStruct 兼容性问题引起的,如下附上正确配置方案...原创 2022-07-19 19:15:21 · 2809 阅读 · 0 评论 -
JavaWeb - org.apache.catalina.LifecycleException: Protocol handler start failed
org.apache.catalina.LifecycleException: Protocol handler start failed原创 2022-06-13 17:51:53 · 409 阅读 · 0 评论 -
JavaWeb - 网页 GZIP 压缩检测
传送门:http://tool.chinaz.com/Gzips原创 2020-01-01 19:13:24 · 803 阅读 · 0 评论 -
MapStruct - 一篇就能上手 MapStruct
简介MapStruct是满足JSR269规范的一个Java注解处理器,用于为Java Bean生成类型安全且高性能的映射。它基于编译阶段生成get/set代码,此实现过程中没有反射,不会造成额外的性能损失。您所要做的就是定义一个mapper接口(@Mapper),该接口用于声明所有必须的映射方法。在编译期间MapStruct会为该接口自动生成实现类。该实现类使用简单的Java方法调用来映射source-target对象,在此过程中没有反射或类似的行为发生。性能优点与手工编..原创 2021-02-22 17:50:19 · 17004 阅读 · 28 评论 -
MapStruct - 原理讲解
MapStruct - 原理讲解原创 2021-02-22 17:56:07 · 1891 阅读 · 0 评论 -
MapStruct - Lombok & Maven 版本关系
Maven版本要3.6.0以上 Lombok版本要1.16.16以上 另外编译的 Lombok、Mapstruct 的插件不要忘记加上方案一<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <mav原创 2021-02-24 10:25:15 · 13534 阅读 · 14 评论 -
MapStruct - No property named “XXX“ exists in source parameter(s). Did you mean “null“?
排查编译的 Lombok、Mapstruct 的插件不要忘记加上<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version&.原创 2021-02-24 10:35:31 · 6183 阅读 · 0 评论 -
MapStruct - Couldn‘t retrieve @Mapper annotation
报错信息java: Couldn't retrieve @Mapper annotation原因分析Maven Pom 切换 MapStruct 版本的时候旧版本残留,没有清理干净,刷新下 Maven; 与 springfox-swagger2 冲突,该框架里也包含 mapstruct,如下解决方案。解决方案<dependency> <groupId>io.springfox</groupId> <artifac..原创 2021-02-28 15:04:42 · 12394 阅读 · 7 评论 -
MapStruct - 生成空对象解决方案
lombok 和 mapstruct 配合转换 bean 后,mapstruct 生成空的实现(对象是有的,但是属性没赋值)解决思路在 maven-compiler-plugin 插件下多配置一个 lombok-mapstruct-binding 注解处理器来绑定mapstruct 和 lombok代码实现<plugin> <groupId>org.apache.maven.plugins</groupId> <arti.原创 2021-08-24 18:00:57 · 3824 阅读 · 3 评论 -
MapStruct - Ambiguous constructors found
Ambiguous constructors found for creating com.app.test.UserInfo. Either declare parameterlessconstructor or annotate the default constructor with an annotation named @Default.方法一、手动添加显示构造无参方法当你的 POJO 里有其他构造函数时,记得要手动添加无参构造函数注意:禁止使用 Lombok @NoArg..原创 2021-08-24 20:17:11 · 1594 阅读 · 2 评论 -
微信授权 & 扫码登录 - 快速入门(手动 & 第三方SDK)
手动方式package com.imooc.controller;import lombok.extern.slf4j.Slf4j;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;im...原创 2020-04-08 15:52:51 · 2662 阅读 · 0 评论 -
微信支付 & 退款 - 快速入门(第三方SDK)
<dependency> <groupId>cn.springboot</groupId> <artifactId>best-pay-sdk</artifactId> <version>1.1.0</version></dependency><dependency> ...原创 2020-04-08 18:31:17 · 1486 阅读 · 0 评论 -
Easy-Flows - Java的简单愚蠢的工作流引擎
The simple, stupid workflow engine for Java源代码名称:easy-flows 源代码网址:http://www.github.com/j-easy/easy-flows easy-flows 源代码文档 easy-flows 源代码下载Git URLgit://www.github.com/j-easy/easy-flows.gitGit Clone 代码到本地git clone http://www.github.com/j-..翻译 2020-06-12 11:01:12 · 4341 阅读 · 0 评论 -
Shiro - Spring + Jedis(会话、缓存、自动登录)整合篇
零、前言Shiro - 基础篇一、Shiro 集成 SpringShiro集成Spring Shiro集成Spring-从数据库获取数据 通过注解配置授权 Shiro过滤器Shiro过滤器内建过滤器:roles[a,b,c] 必须权限都符合才可以、perms[a,b,c]必须权限同时具备才可以。 anon 代表无需权限authBasic:httpBasicaut...原创 2019-01-03 14:47:43 · 582 阅读 · 0 评论 -
Shiro - 基础篇
由于权限管理模块一般都是在资源一层,如果更深一层的话,则可能会与业务代码进行耦合,故提倡Shiro做权限管理,Spring官网也是用Shiro进行的权限管理。SUB 主体 Authenticator 认证器(登陆) Authorizer 授权器(访问权限) SessionManager Shiro自己的Session不依赖于Web SessionDAOSession操作增...原创 2019-01-03 12:54:31 · 421 阅读 · 0 评论 -
HttpComponents - HTTP.UTF_8 过时替代方案
言简意赅org.apache.http.protocol 包下的 HTTP.UTF_8 过时了,而在 HTTP 里没找到 UTF-8 的替代品,从网络搜索发现可用这个替代:StandardCharsets.UTF_8,这个类在 java.nio.charset 下,本人机器 JDK 1.8 版本。...转载 2019-08-23 00:45:09 · 2154 阅读 · 0 评论 -
HttpComponents - HttpClient 获取 Cookie 的两种方式
一、旧版本的 HttpClient 获取 CookiesPs:该方式官方已不推荐使用;使用 DefaultHttpClient 类实例化 HttpClient 对象。public static String dooPost_deprecated(String url, Map<String, String> map, String charset) { Defaul...转载 2019-08-19 23:29:13 · 858 阅读 · 0 评论 -
HttpComponents - HttpClient 基础篇
Ps:CDSpace工具。Ps:发送个get和post请求的5个步骤。核心代码:// pom.xml<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</vers...原创 2018-12-28 20:55:49 · 720 阅读 · 0 评论 -
微信模板消息 - 快速入门(第三方SDK)
<dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-mp</artifactId> <version>2.7.0</version></dependency>wechat: tem...原创 2020-04-08 22:38:23 · 1058 阅读 · 0 评论 -
AliPay - Java支付宝接口开发(三)
一、前言AliPay - Java支付宝接口开发(一)AliPay - Java支付宝接口开发(二)二、支付宝沙箱环境集成Web项目1、将支付宝Demo中的相关文件复制到我们的项目中1.1 Maven以外的Jar包(红框部分)(主要2个,还有2个是对应的源码)1.2 Maven以内的Jar包(最好版本号都一样,以免出现意想不到的事)<!-- alipa...原创 2019-01-12 19:41:21 · 7108 阅读 · 1 评论 -
AliPay - Java支付宝接口开发(二)
一、前言AliPay - Java支付宝接口开发(一)我们讲解了怎么配置相关配置文件,下面我们调试一下怎么使其在IDEA的web项目中跑起来,然后在浏览器中进行操作。我们用IDEA导入支付宝对接Demo的是时候发现不能运行,下面讲解一下怎么在IDEA中运行支付宝Demo并且在浏览器中运行出来~二、解决方案1、进入 File ->Project Structure......原创 2019-01-12 18:35:04 · 923 阅读 · 0 评论 -
AliPay - Java支付宝接口开发(一)
一、下载导入项目支付宝接口官网:https://docs.open.alipay.com/54/104506下载之后解压,然后我们用IDEA导入这个Demo项目~然后,我们下载一个我们后面需要生成生成RSA密钥的工具:https://docs.open.alipay.com/291/105971由于我是在Win平台开发,所以下载自己操作系统对应的版本就行。下载之后我...原创 2019-01-12 16:55:23 · 2872 阅读 · 2 评论 -
AliPay - 理论篇
Ps1:主动轮询和回调的区别。主动轮询:在一定时间里,每隔时间间隔(如:5s)就进行一次执行;回调:在一定时间里,执行一个事件时被监听到触发。Ps2:避免单边账:支付宝记录,用户没记录;或者用户记录,支付宝没记录的情况(即:单边帐是指对于一笔交易,商户端和用户端的结果不一致)。相关文档沙箱登录:https://openhome.alipay.com/platform/ap...原创 2019-01-12 16:24:57 · 524 阅读 · 0 评论 -
日志 - Logback 详解
快速入门<?xml version="1.0" encoding="UTF-8"?><configuration scan="true" scanPeriod="60 seconds" debug="false"> <appender name="console" class="ch.qos.l原创 2019-01-05 16:17:15 · 374 阅读 · 0 评论 -
日志 - 快速入门(SpringBoot 版)
System.out:因为只能简单输出到控制台,所以不能胜任日志框架的选择。package com.imooc;import lombok.extern.slf4j.Slf4j;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.c...原创 2020-04-07 20:33:46 · 386 阅读 · 0 评论 -
Logback - 日志配合 Skywalking TraceId 和颜色打印配置
<?xml version="1.0" encoding="UTF-8"?><configuration> <property name="LOG_PATTERN" value="%date{yyyy-MM-dd HH:mm:ss} | %highlight(%-5level) | %boldYellow(%tid) | %boldYellow(%thread) | %boldGreen(%logger) | %msg%n"/> <appender na.原创 2020-10-22 13:36:13 · 3328 阅读 · 2 评论 -
日志 - 高并发的情况下小小的日志打印会严重影响到性能
输出格式优化前经过测试查看每秒的并发量平均只有110多如下图通过查看JVM虚拟机发现很多日志线程出现BLOCKED,如下"http-saoma%2F192.168.6.162-8097-132" daemon prio=10 tid=0x00002aaab88e4800 nid=0x2c8e runnable [0x0000000045274000] java.lang.Thread.State: BLOCKED at java.lang.Throwable.getStack转载 2020-10-28 13:28:13 · 3468 阅读 · 0 评论 -
日志 - logback.xml VS application.yml(日志级别配置)
logback.xml<root level="INFO"> <appender-ref ref="STDOUT"/></root>application.ymllogging: level: root: WARN org.springframework: INFO com.luxsun.platform: DEBUG讲解当 logback.xml 和 application.yml 共同对日.....原创 2020-11-03 10:42:34 · 5187 阅读 · 6 评论 -
Email - 搭建自定义邮件服务器
准备工具:易邮邮件服务器 Foxmail(推荐免费,OutLook 收费)(若有条件可以自行开发类似QQ邮箱Web系统)一、易邮邮件服务器二、Foxmail附:常见邮件服务器地址腾讯QQ邮箱接收服务器:pop.qq.com发送服务器:smtp.qq.com网易126邮箱接收服务器:pop3.126.com发送服务器:smtp.126...原创 2018-12-22 19:02:21 · 16201 阅读 · 0 评论 -
正则表达式 - 模式修正符作用详解(i、g、m、s、x、e)
正则表达式中常用的模式修正符有 i、g、m、s、x、e 等,它们之间可以组合搭配使用。修正符 i不区分大小写的匹配如:"/abc/i" 可以与 abc 或 aBC 或 ABc 等匹配。修正符g表示全局匹配修正符 m将字符串视为多行,不管是那行都能匹配例:模式为:$mode="/abc/m"。要匹配的字符串为:$str="bcefg5e\nabcd...原创 2019-07-07 23:51:15 · 1195 阅读 · 0 评论 -
正则表达式 - 最常用正则表达式大全(数字、字符、特殊)
很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。给自己留个底,也给朋友们做个参考。一、校验数字的表达式 1 数字:^[0-9]*$ 2 n位的数字:^\d{n}$ 3 至少n位的数字:^\d{n,}$ 4 m-n位的数字:^\d{m,n}$ 5 零和非零开头的...转载 2019-06-08 23:50:38 · 3272 阅读 · 0 评论