Java
癸酉金鸡
本博客转本转载发现的好文章
展开
-
Spring事件ApplicationEventPublisher使用和观察者模式
观察者模式 事件发布原创 2023-02-16 08:21:31 · 479 阅读 · 0 评论 -
Java请求WebSocket方法
Java请求WebSocket方法。原创 2022-09-02 15:14:33 · 927 阅读 · 0 评论 -
security 自定义登录密码匹配
security自定义密码匹配原创 2022-08-09 16:37:24 · 780 阅读 · 0 评论 -
利用序列化实现对象的拷贝(深拷贝)
深拷贝原创 2022-08-09 15:53:12 · 157 阅读 · 0 评论 -
java8非空判断新写法
User user = null;//jdk7if(user!=null){ User user = new User();}//jdk8User user = Optional.ofNullable(user).orElse(new User());//jdk7public String getCity(User user) throws Exception{ if(user!=null){ if(user.getAddress()!=null){ Addres原创 2022-04-20 19:40:18 · 733 阅读 · 0 评论 -
Spring Boot 内置工具类
对象、数组、集合ObjectUtils/*1. 获取对象的基本信息*/// 获取对象的类名。参数为 null 时,返回字符串:"null"String nullSafeClassName(Object obj)// 参数为 null 时,返回 0int nullSafeHashCode(Object object)// 参数为 null 时,返回字符串:"null"String nullSafeToString(boolean[] array)// 获取对象 HashCode(十六进制.转载 2022-03-01 09:55:28 · 361 阅读 · 0 评论 -
利用Java自带Duration,Period和ChronoUnit类计算时间日期差
java8日期解析LocalDate.from(DateTimeFormatter.ofPattern("yyyyMMdd").parse(str))ChronoUnit类LocalDate startDate = LocalDate.of(2021, 12, 20);LocalDate endDate = LocalDate.of(2021, 11, 15);long years = ChronoUnit.YEARS.between(startDate, endDate);long mont原创 2021-11-30 10:27:12 · 1058 阅读 · 0 评论 -
从请求头Header中获取参数信息
使用@RequestHeader注解@RequestMapping(produces = "application/json", method = RequestMethod.GET, value = "data")@ResponseBodypublic ResponseEntity<Data> getData(@RequestHeader(value="User-Agent") String userAgent, @RequestParam(value = "ID", default.原创 2021-10-28 09:58:58 · 1969 阅读 · 0 评论 -
根据动态传入的数据库连接、用户名、密码、sql执行查询并返回结果
根据传入的数据库信息执行sqlpackage com.zheytech.common.util;import com.zaxxer.hikari.HikariDataSource;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.jdbc.core.BeanPropertyRowMapper;import org.springframework.jdbc.core.JdbcTe.原创 2021-10-20 17:17:49 · 479 阅读 · 0 评论 -
TransmittableThreadLocal应用(当前线程及子线程获得最新信息)
使用TransmittableThreadLocal保存当前请求用户信息到方法中,方便获取当前用户信息package com.zhey.common.base;import com.alibaba.ttl.TransmittableThreadLocal;import com.orchard.common.constants.CommonConstants;import com.orchard.common.util.ValidUtil;import java.math.BigIntege.原创 2021-10-18 15:15:37 · 579 阅读 · 0 评论 -
hutool工具包主要类
hutool文档核心(Hutool-core)克隆支持泛型的克隆接口和克隆类类型转换类型转换工具类-Convert自定义类型转换-ConverterRegistry日期时间日期时间工具-DateUtil日期时间对象-DateTime农历日期-ChineseDateLocalDateTime工具-LocalDateTimeUtilIO流相关IO工具类-IoUtil文件工具类-FileUtil文件类型判断-FileTypeUtil文件监听-WatchMonitor原创 2020-09-04 16:24:55 · 1507 阅读 · 1 评论 -
mysql数据库升级后,服务连接异常解决办法
HTTP Status 500 ?Internal Server ErrorType Exception ReportMessage Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connectionDescription The server encountered an unexpect原创 2020-07-27 16:35:35 · 485 阅读 · 0 评论 -
基于雪花算法(Snowflake)模式生产唯一分布式id
雪花算法(Snowflake)是twitter公司内部分布式项目采用的ID生成算法,开源后广受国内大厂的好评,在该算法影响下各大公司相继开发出各具特色的分布式生成器。Snowflake生成的是Long类型的ID,一个Long类型占8个字节,每个字节占8比特,也就是说一个Long类型占64个比特。Snowflake ID组成结构:正数位(占1比特)+ 时间戳(占41比特)+ 机器ID(占5比特)+ 数据中心(占5比特)+ 自增值(占12比特),总共64比特组成的一个Long类型。第一个bit位(1b原创 2020-06-04 09:15:31 · 947 阅读 · 0 评论 -
xss过滤拦截器
SpringBoot过滤器过滤get及post请求中的XSS和SQL注入 (推荐)package com.orchard.pomeloweb.config;import com.google.common.collect.Maps;import com.orchard.common.filter.XssFilter;import org.springframework.boot.web....原创 2020-04-30 15:45:50 · 1239 阅读 · 0 评论 -
DigestUtils加密工具类
DigestUtils是一个加密算法工具类,在package org.apache.commons.codec.digest;这个包下。如常用的md2 md5 sha sha1 sha256 sha384 sha512 加密算法源码://// Source code recreated from a .class file by IntelliJ IDEA// (powered by F...原创 2020-03-20 09:54:20 · 16363 阅读 · 1 评论 -
Java8时间类Instant及ZoneId,ZoneOffset用法
Instant.now().getEpochSecond()时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。时间戳转化为Date或LocalDateTime时,需要添加ZoneId(地区)或ZoneOffset(偏移数据)来转为本地时间。public static void main(String[] arg...原创 2019-12-15 18:48:05 · 21656 阅读 · 1 评论 -
linux查看jvm内存
查看内存大小free -hfree命令相关知识判断Java程序对内存的消耗toptop命令相关知识查看tomcat信息ps -ef | grep tomcat4.1分析内存实例使用jmap来查看jvm的堆的快照jmap -histo 21069 | morejmap命令相关知识从上面图中可以观察到apache的包占用太多,可以看到sheettml,这个可以猜测出是...原创 2019-12-03 16:46:36 · 2214 阅读 · 0 评论 -
Java冒泡排序优化
经典:private static int[] bubbleSort(int[] ints) { int len = ints.length; for (int i = 0; i < len; i++) { for (int j = 1; j < len - i; j++) { if (ints[j - 1] > ints...原创 2019-10-31 16:28:54 · 143 阅读 · 0 评论 -
策略模式、工厂模式以及Spring的InitializingBean消除IfElse
计算价格接口:package com.orchard.common.noIfElse;import java.math.BigDecimal;public interface UserPayService { /** * 计算应付价格 */ public BigDecimal quote(BigDecimal orderPrice);}工程模式...原创 2019-10-29 09:49:03 · 368 阅读 · 1 评论 -
IO流复制、字符缓冲流、字节缓冲流
IO流只能操作一次,如果需要多次读取流获取其中的信息,就需要将流进行复制,再对每个流进行单独操作(流只能使用一次!)/*** 复制操作流 */public void uploadFile(MultipartFile file,HttpSession session){ InputStream is = file.getInputStream(); ByteArrayOutputStr...原创 2019-01-07 18:20:59 · 175 阅读 · 0 评论 -
基于springMvc整合websocket
eclipse下,项目接口图:原创 2019-07-03 11:07:57 · 11986 阅读 · 3 评论 -
请求参数包含中文乱码问题
有部分浏览器请求参数包含中文时,请求参数到后台会出现乱码问题。解决方案://页面处理encodeURI(encodeURI(name)) ;// JavaScript编码为什么要连续两次调用encodeURI(String)方法呢?是因为Java中的request.getParameter(String)方法会进行一次URI的解码过程,调用时内置的解码过程会导致乱码出现。而URI编码...原创 2019-06-24 09:17:05 · 496 阅读 · 0 评论 -
AJAX跨域解决方案
原文AJAX跨域原因:XHR(XMLHttpRequest)请求浏览器限制:浏览器安全校验限制跨域(协议、域名、端口任何一个不一样都会认为是跨域)AJAX跨域问题解决思路跨域:被调用方修改支持跨域调用(指定参数);调用方修改隐藏跨域(基于代理)浏览器:浏览器取下跨域校验(实际价值不大)XHR:不使用XHR,使用JSONP(只能使用Get,无法满足现在的开发要求)一 解决...转载 2019-06-22 20:57:57 · 142 阅读 · 0 评论 -
bat脚本,批量打包maven项目
bat脚本目录cmd执行命令脚本内容(只执行的maven的编译脚本,其中-Ptest(中的test对应主pom.xml里activeByDefault=true对应的profiles.active值))@echo offecho 1、执行打包脚本至UAT环境或release环境mvn clean install -Dmaven.test.skip=true -Dmaven.com...原创 2019-06-17 16:23:41 · 2779 阅读 · 0 评论 -
ThreadLocal及CountDownLatch应用
具体测试实例:import java.util.concurrent.CountDownLatch;import java.util.concurrent.TimeUnit;public class ThreadLocalDemo { public static void main(String[] args) throws InterruptedException { ...原创 2019-05-29 16:02:36 · 554 阅读 · 0 评论 -
Excel数据读取及生成下载 工具类
依赖:<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.14</version></dependency>接口类:import org.apache....原创 2019-05-29 10:05:47 · 298 阅读 · 0 评论 -
基于Httpclient包的Get、Post请求工具类
依赖:<!-- apache httpclient组件 --><dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.6</ver...转载 2019-05-24 17:32:13 · 1258 阅读 · 0 评论 -
自定义Session创建及销毁
web.xml<listener> <listener-class>com.iflytek.atp.web.listener.SessionListener</listener-class></listener>SessionListener类:package com.iflytek.atp.web.listener;import j...原创 2019-06-28 10:29:00 · 367 阅读 · 0 评论 -
JVM相关知识
链接转载 2019-07-04 09:20:53 · 107 阅读 · 3 评论 -
Java压缩及解压文件
依赖:<dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</artifactId> <version>1.9.8</version></dependency>Java:package com.iflytek....原创 2019-07-29 10:20:19 · 146 阅读 · 0 评论 -
SpringMVC 过滤器Filter和拦截器HandlerInterceptor和监听器Listener
SpringMVC 过滤器Filter使用解析OncePerRequestFilter原创 2019-07-24 14:43:55 · 655 阅读 · 0 评论 -
Java多线程:Callable、Future和FutureTask
Java并发编程:Callable、Future和FutureTaskFuture接口和FutureTask类【FutureTask实现了Runnable和Future接口】ExecutorService 中 shutdown()、shutdownNow()、awaitTermination() 含义...转载 2019-07-25 10:13:08 · 199 阅读 · 0 评论 -
java8 StreamAPI 和 lambda表达式
JAVA 8 手把手教你学会写lambda表达式JAVA 8 StreamAPI 和 lambda表达式 总结(一)–lambda表达式JAVA 8 StreamAPI 和 lambda表达式 总结(二)–Stream基本操作JAVA 8 StreamAPI 和 lambda表达式 总结(三)–Optional类型JAVA 8 StreamAPI 和 lambda表达式 总结(四)–str...原创 2019-08-05 21:17:17 · 278 阅读 · 0 评论 -
JAVA 8 时间处理类
JAVA 8 处理日期和时间原创 2019-08-06 15:19:37 · 147 阅读 · 0 评论 -
Java泛型知识 ? extends T和? super T区别
package com.orchard.common.annotation;public class Plate<T> { private T item; public Plate(T t) { this.item = t; } public T get() {return item;} public void se...原创 2019-08-18 20:38:17 · 233 阅读 · 1 评论 -
Java NIO与Java BIO的区别
关于BIO和NIO的理解Java NIO与Java BIO的区别述转载 2019-08-07 20:55:25 · 148 阅读 · 0 评论 -
.yml配置文件详解
yml数据结构yml使用snakeyaml包实例原创 2019-05-20 14:33:34 · 2781 阅读 · 0 评论 -
List、Map循环遍历时删除元素;Map遍历性能分析及排序
使用keySet()遍历for (String key : map.keySet()) { System.out.println(key + " :" + map.get(key));}使用entrySet()遍历for (Map.Entry<String, String> entry : map.entrySet()) { System.out.print...原创 2019-05-06 20:06:19 · 524 阅读 · 0 评论 -
正则表达式
/** * */package com.iflytek.atp.util;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * * @author admin * */public class ValidationUtils { /** * Email正则表达式="^([a...原创 2019-01-08 09:49:32 · 132 阅读 · 0 评论 -
字节数组转为object
package com.iflytek.atp.util;import java.io.ByteArrayInputStream;import java.io.IOException;import java.io.ObjectInputStream;import com.iflytek.atp.log.IflytekLogger;import com.iflytek.atp.log....原创 2019-01-08 09:56:03 · 633 阅读 · 1 评论